【问题标题】:Reading log from Log4Net generated by multiple threads从多线程生成的 Log4Net 读取日志
【发布时间】:2011-01-22 21:56:19
【问题描述】:

我有一个脚本,它有多个并行运行的线程。这些线程写入 Log4Net RollingFileAppender 文件。阅读此日志非常令人困惑,因为所有线程日志都混在一起了。 我想知道什么是编写这些日志的好方法,以及读取这些文件的最佳方法是什么,以便读取特定线程的调试信息变得更容易。

【问题讨论】:

    标签: multithreading logging log4net


    【解决方案1】:

    更新您的配置文件以在日志输出中包含线程名称。如果您在代码中设置线程名称,相同的名称将记录到您的文件中。这是一个通过 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/

    【讨论】:

    【解决方案2】:

    考虑将日志记录到更容易处理的地方,例如数据库。使用 AdoNetAppender 将日志记录到数据库表中,您可以轻松地对线程进行排序和过滤。

    在 log4net 网站上,config samples 提供了有关如何进行此操作的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2015-03-12
      • 2012-08-26
      • 1970-01-01
      • 2021-03-22
      相关资源
      最近更新 更多