2012-03-05 52 views

回答

3

它看起来不像它的支持。

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

您可以考虑使用进程ID吗?取决于你的最终目标是什么。

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

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

和配置使用

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

我假设你需要使用'ThreadContext'而不是'GlobalCon因为他想要线程级属性。 – 2012-03-05 12:45:18

+0

我实际上只是需要线程ID来始终打印,即使有问题的线程有一个名称。这是因为我正在处理一个创建一组线程的类,并给出它们的名称。当您有该类的多个实例时,最终会在日志中拥有多个具有相同名称的线程。我想我会用一个自定义/扩展的PatternLayout类。谢谢! – musaul 2012-03-05 14:30:29

0

你可以线程ID添加到线程名:

Thread myThreadObj = new Thread(...); 
myThreadObj.Name = "The thread name " + myThreadObj.ManagedThreadId; 
相关问题