使用log4net,我已经看到了使用称为NDC的每个线程堆栈的上下文标签的可能性.
通过指定%x或%ndc格式参数,在此堆栈上推送的标签将显示在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");
Run Code Online (Sandbox Code Playgroud)
输出类似于:
null - message 1
context inner_context - message 2
context - message 3
null - message 4
Run Code Online (Sandbox Code Playgroud)
在使用log4net的编程经验中,您何时发现此功能有用?