log4net をいじって、NDC と呼ばれるコンテキスト ラベルのスレッドごとのスタックを使用する可能性を見てきました。
このスタックにプッシュされたラベルは、%x
または%ndc
format パラメーターを指定して PatternLayout に表示されます。
使用法は次のようなものです。
ILog log = log4net.LogManager.GetLogger(...) ;
//pattern layout format: "[%ndc] - %message%newline"
log.Info("message 1");
using(log4net.NDC.Push("context")
{
using(log4net.NDC.Push("inner_context")
{
log.Info("message 2");
}
log.Info("message 3");
}
log.Info("message 4");
出力は次のようになります。
null - message 1
context inner_context - message 2
context - message 3
null - message 4
log4net でのプログラミング経験の中で、この機能が役立つと感じたのはいつですか?