使い方は知っているけど、
・実際に内部でどういうことを行っているか
・知っている機能以外に使っていない便利機能はないか
などについて改めて知りたくなりました!
ソースコードはGitHubで公開されているので、そこからDLして実際にDEBUG実行してログ出力処理の流れを追ってみました。
そんな感じのもろもろメモです。
とはいえ、環境がないとデバッグできないので、まず初めに、Deep Dive用のソリューションを用意します。
次にLog4netをこのプロジェクトに参照させます。
参照後は、log4netで利用する「ログの出力設定」の設定を行う必要があります。
「ログの出力設定」は、いろいろなオプションがあるが、今回は以下のようにします。
TODO : Logger要素とRoot Logger要素の使い分け
TODO : Appender要素の種類(子要素、属性含む)
実行する際は、上記設定がどこに記載されているかをlog4netに知らせる必要があります。
その設定は以下の通り。
今回は、app.configに設定を追加しているので、上記の呪文をAssemblyInfo.csに追記します。
本家サイトを見ると、app.configに以下の設定を追記することでも設定が可能だと書いてありました。
TODO : 上記設定の設定方法確認
以上の設定により、log4netによってログをファイルに出力する準備ができた!
ということで、ログを出力します。
ログを出力する実装は以下の通り。
・・・シンプルw
これを実行すると・・・始めはなかったログファイルが・・・
↓
↓
生成される!
ということで、今後はこのプロジェクトを使って、実際にログが出力されるまでにlog4net内部で処理が実行されているかについてデバッグ実行しながら見ていきたいと思います!
あと、途中でおもむろに出てきたTODOもそれぞれのタイミグで解決していこうと思います。