gpt4 book ai didi

c# - Log4Net在日志中打印 "ThreadID"和 "Thread Name"

转载 作者:行者123 更新时间:2023-11-30 20:18:03 25 4
gpt4 key购买 nike

在我们的应用程序中,我们通常命名我们创建的线程。例如,我们会创建一个线程并为其命名,例如“WorkerThread”。

假设这是我的 log4net 配置文件的一部分:

 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\Logs\MyApp\myapp.log" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="1000MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c :: %m%n" />
</layout>
</appender>

此配置将在我的日志中打印以下内容:

2017-03-07 17:00:00,003 [MessagePump Worker] DEBUG MyApp.App :: Blah Blah Blah

我想打印:

2017-03-07 17:00:00,003 [MessagePump Worker: 2380] DEBUG MyApp.App :: Blah Blah Blah

我只是想弄清楚我需要在我的转换模式中放入什么,以便还包括上面示例中的 ThreadID (2380)。我做了一些谷歌搜索,但我似乎无法找到一种方法来打印“线程名称”和“线程 ID”。有人有什么想法吗?

最佳答案

在你的应用线程中使用:

ThreadContext.Properties["threadid"] = Thread.CurrentThread.ManagedThreadId;

在转换模式中:

%property{threadid}

关于c# - Log4Net在日志中打印 "ThreadID"和 "Thread Name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675024/

25 4 0