如何在日志输出中包含LogicalThreadContext
本文关键字:包含 LogicalThreadContext 输出 日志 | 更新日期: 2023-09-27 18:05:45
来自LogicalThreadContext
文档:
逻辑线程上下文有一个属性映射和一个堆栈。的属性和堆栈可以包含在日志消息的输出中。PatternLayout支持选择和输出这些属性。
但是%x
模式没有从LogicalThreadContext.Stacks["LDC"]
输出任何东西。我在文档中找不到任何模式来输出它。
如何将其包含到日志中?
你可以用
来包装你的代码using (log4net.ThreadContext.Stacks["stackName"].Push("Text you want to stack"))
{
[your code]
}
并添加到你的模式
(%property{stackName})
例如如果你有多个级别,你可以为堆栈使用相同的名称:
using (log4net.ThreadContext.Stacks["SN"].Push("level 1"))
{
using (log4net.ThreadContext.Stacks["SN"].Push("level 2"))
{
log.Debug("Log Text");
}
}
使用类似
的模式(%property{SN}) [%message]
将输出类似
的内容(level 1 level 2) [Log Text]
如果你想了解更多信息,你可以看看Jim Christopher的博客