从多个线程生成的Log4Net读取日志

时间:2010-03-02 20:23:20

标签: multithreading logging log4net

我有一个脚本,它有多个并行运行的线程。这些线程写入Log4Net RollingFileAppender文件。读取此日志非常令人困惑,因为所有线程日志都已混淆。 我想知道写这些日志的好方法是什么,读取这些文件的最佳方法是什么,这样就可以更轻松地读取特定线程的调试信息。

2 个答案:

答案 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