misc.log

日常茶飯事とお仕事と

log4netでうまくログが出ない場合

log4netでログがうまく出ない...というときのチェック手順についてメモしておく。
まず、GetLoggerで取得したオブジェクト(loggerと呼ぶことにする)をモニタすることで、状況は大まかに確認できる。デバッグモードでログ取得処理あたりでブレイクをかけ、以下の点を確認する。

  • loggerのNameプロパティを見て、想定通りの名称文字列が設定されているかどうかを確認する。この内容と、ログ設定の内容(name value="..."の"..."の部分)が一致していないと、そもそもログ設定がきちんと読み込まれない。
  • 設定ファイルを読み込んだあとで、loggerの「IsDebugEnabled」「IsErrorEnabled」といったBoolean型プロパティを確認し、設定ファイルで指定したレベル以上のプロパティがすべてTrueになっているかどうか。たとえばErrorレベル以上でログを出すように設定しているのに、ErrorやFatalがFalseになっている場合、ログ設定がきちんと読めていない可能性が高い。
  • ログ設定を読み終えた後で、「logger.Logger.Repository.Configured」を確認する。ここがFalseの場合、設定ファイルがきちんと読めていない。
  • 設定ファイルが読めていないといけないのに、上に書いた内容が全部ダメの場合、設定ファイル読み込み処理(XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile)))をコマンドウィンドウで実行してみる。そうすると、設定ファイル内の不備などがエラーメッセージとしてズラズラ出てくるので、それで設定ファイル中の問題箇所を特定する。

.NET開発テクノロジー入門 VISUAL STUDIO 2010対応版 (MSDNプログラミングシリーズ)

.NET開発テクノロジー入門 VISUAL STUDIO 2010対応版 (MSDNプログラミングシリーズ)