在log4net配置的ConversionPattern中,有没有办法指定线程号,即使它有一个名字?
e.g。类似于以下内容:[7] ThreadFoo
答案 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;