【发布时间】:2011-01-22 21:56:19
【问题描述】:
我有一个脚本,它有多个并行运行的线程。这些线程写入 Log4Net RollingFileAppender 文件。阅读此日志非常令人困惑,因为所有线程日志都混在一起了。 我想知道什么是编写这些日志的好方法,以及读取这些文件的最佳方法是什么,以便读取特定线程的调试信息变得更容易。
【问题讨论】:
标签: multithreading logging log4net
我有一个脚本,它有多个并行运行的线程。这些线程写入 Log4Net RollingFileAppender 文件。阅读此日志非常令人困惑,因为所有线程日志都混在一起了。 我想知道什么是编写这些日志的好方法,以及读取这些文件的最佳方法是什么,以便读取特定线程的调试信息变得更容易。
【问题讨论】:
标签: multithreading logging log4net
更新您的配置文件以在日志输出中包含线程名称。如果您在代码中设置线程名称,相同的名称将记录到您的文件中。这是一个通过 log4net 配置文件
<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/
【讨论】:
考虑将日志记录到更容易处理的地方,例如数据库。使用 AdoNetAppender 将日志记录到数据库表中,您可以轻松地对线程进行排序和过滤。
在 log4net 网站上,config samples 提供了有关如何进行此操作的信息。
【讨论】: