読者です 読者をやめる 読者になる 読者になる

割と普通なブログ

Microsoft Azure や ASP.NET、Java EE 系の話題を記載します

log4netを使ってみた

C#

わんくま同盟で使用方法を紹介されていたのでlog4netを使ってみました。一応簡単に使い方を書いてみる。

とりあえずの追記

運用時にlog4net.dllファイルが存在しない場合、ログを出力しない変更をしたいんですが、どうしたら良いんだろう…。

準備(簡易版)

  1. dllのダウンロード
    1. Apacheプロジェクトのここから落とせる
  2. dllをプロジェクトに読み込む
    1. ソリューションエクスプローラを右クリック
    2. [参照の追加]メニューを選択
    3. [参照]タブを選択肢、log4net.dllファイルを選ぶ
  3. AssemblyInfo.cs ファイルに次の記述を追加する。 [assembly: log4net.Config.DOMConfigurator(Watch = true)]
  4. App.config を用いて以下の形式の設定ファイルを記述する。*1
<log4net>
 <appender name="consoleAppender" type="log4net.Appender.ConsoleAppender">
  <param name="File" ... />
  (中略)
 </appender>
 <root>
   <level value="DEBUG" />
   <!-- コンソール出力 -->
   <appender-ref ref="consoleAppender" />
 </root>
</log4net>

実際にログ出力

  1. loggerの作成
    • static readonly log4net.ILog logger = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  2. ログの出力
    • logger.Fatal("致命的なエラーの発生");

設定ファイルの構成

  • appender(一件以上必要)
    1. ログファイルの出力先(ファイル、DB、メール送信)等
    2. ログ出力フォーマット
    3. ログファイルに上書き出力か否か
  • root(一件必要)
    1. プロジェクト全体の出力ログレベル
    2. 使用するappender
  • logger(0件以上必要)
    1. 基本的に root と同じ
    2. クラス単位で使用appenderを設定できる

*1:最低限appender一つとrootを一つ記述しなければならないようです。