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プログラミングシリーズ)
- 作者: マイクロソフト株式会社エバンジェリストチーム,新村剛史
- 出版社/メーカー: 日経BP社
- 発売日: 2010/12/02
- メディア: 単行本
- 購入: 4人 クリック: 187回
- この商品を含むブログ (12件) を見る