設定方針について
log4netでは、指定されたレベルより重要なログが出力されることになります(例えば、レベルにINFO
を指定した場合、ERROR
やWARN
等の重要度が高いログも一緒に出力されます)。
そのため、パフォーマンスを考慮し、通常は、RootにはWarn
やError
など重要度の高いレベルを設定して不用意に多くのログを出さないようします。それに対して、調査の必要がある項目のみをDebug
レベルなどでlogger
に登録するようにすると良いでしょう。
なお、特定のレベルのログだけを出力したい場合にはFilterと呼ばれる機能を使用します。
log4netのログが正しく表示されない場合
もしログが正しく出力されない場合は、XMLの設定に誤りがある可能性が高いため、起動時と実行時のlog4netのメッセージを確認してください。
ログ参照用のツール「Chainsaw」
ログ監視を行うためにツールを使用すると便利な場合があります。そこで、UDPのデータの受信例として、log4netのログを参照するGUIベースのログビューア「Chainsaw」を紹介します。
Chainsawは本来はlog4j用のツールです。実行するにはJavaの環境(J2SE 1.4.2以上推奨)がインストールされている必要があります。起動方法はダウンロードファイルに含まれるバッチファイルをクリックするだけです。起動後に、UDPのレシーバを作成し、UdpAppender
のPort
(ここでは「8080」)を設定するとログの受信を開始することができます。
まとめ
log4netの特長をまとめると以下のようになります。
- 開発から運用まで一貫して利用可能。
- ログの出力先が豊富(ファイル・メール・データベースなど)
- 動作中のアプリケーションのログ取得内容を設定ファイルの変更で動的に変更可能。
- オープンソース(Apache Logging Service)
ログ出力には「システム開発時のデバッグ」「運用開始後の履歴保存・障害の切り分け・パフォーマンス調査」というメリットがあり、log4netを使用するとこれらのログを効果的に取得することできるようになります。