我有一个脚本,它有多个并行运行的线程。这些线程写入Log4Net RollingFileAppender文件。读取此日志非常令人困惑,因为所有线程日志都已混淆。 我想知道写这些日志的好方法是什么,读取这些文件的最佳方法是什么,这样就可以更轻松地读取特定线程的调试信息。
答案 0 :(得分:7)
更新配置文件以在日志输出中包含线程名称。如果在代码中设置线程名称,则会将相同的名称记录到您的文件中。这是通过log4net配置文件< conversionPattern>包含线程名称的简单示例。标记:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="service.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="2MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
**<conversionPattern value="%-5level : [%t] - %message%newline" />**
</layout>
</appender>
<强>更新强> 我写了一个简单的POC应用来证明这一点。 http://codereport.net/logging-the-thread-name-with-log4net/
答案 1 :(得分:0)
考虑记录更容易处理的内容,例如数据库。使用AdoNetAppender记录到数据库表,您可以轻松地对线程进行排序和过滤。
在log4net网站上有关于如何实现这一目标的config samples。