即使线程有名称,如何在log4net appender中包含线程号?

时间:2012-03-05 03:19:59

标签: log4net

在log4net配置的ConversionPattern中,有没有办法指定线程号,即使它有一个名字?

e.g。类似于以下内容:[7] ThreadFoo

2 个答案:

答案 0 :(得分:3)

它看起来不像是支持的。

基于列出所有输出选项here的PatternLayout类文档,%thread变量似乎包含了您想要更改的行为。

  

您可以考虑使用Process ID吗?取决于您的最终目标。

看看这个SO Answer,它看起来像是:

log4net.GlobalContext.Properties["pid"] = Process.GetCurrentProcess().Id;

和配置用法

<layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%property{pid}" />
</layout>

答案 1 :(得分:0)

您可以将线程ID添加到线程名称:

Thread myThreadObj = new Thread(...);
myThreadObj.Name = "The thread name " + myThreadObj.ManagedThreadId;