【问题标题】:MassTransit - Use Different Log4Net file for MT logsMassTransit - 为 MT 日志使用不同的 Log4Net 文件
【发布时间】:2013-08-15 20:35:59
【问题描述】:

我目前有一个使用 MassTransit 的 Windows 服务。此 Windows 服务使用 Log4Net 进行所有日志记录,现在我还想打开 Log4Net 进行内部 MassTransit 日志记录。但是,我想:

  • 将 MT 日志记录到与 Windows 服务日志不同的文件中
  • 使用单个(现有)Log4Net 配置文件来配置两个输出

我已经在初始化总线时添加了sbc.UseLog4Net(),效果很好。但是,它正在写入与我的 Windows 服务日志相同的文件。

我确实意识到我可以使用单独的文件调用sbc.UseLog4Net(@"log4net.config") 来完成此操作。

我真正想要的是能够修改我当前的 log4net.config 文件来完成此操作。

【问题讨论】:

    标签: log4net masstransit


    【解决方案1】:

    当然,这并不难。在您的 log4net 配置中设置两个附加程序。

      <appender name="RollingFile1" type="log4net.Appender.FileAppender">
        <file value="log1.log" />
        <appendToFile value="false" />
    
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
        </layout>
      </appender>
      <appender name="RollingFile2" type="log4net.Appender.FileAppender">
        <file value="log2.log" />
        <appendToFile value="false" />
    
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
        </layout>
      </appender>
    

    然后只需设置两个记录器,每个附加器一个。

    <logger name="MassTransit">
      <level value="INFO" />
      <appender-ref ref="RollingFile1" />
    </logger>
    
    <logger name="MyLogger">
      <level value="INFO" />
      <appender-ref ref="RollingFile2" />
    </logger>
    

    您只需将每个记录器指向正确的文件并收工。如果您对这些元素的工作方式有任何疑问,我会查阅手册:http://logging.apache.org/log4net/release/manual/configuration.html

    【讨论】:

    • 谢谢@Travis!我可能在这里很厚,但是我怎样才能指出嵌入到 MassTransit 的 Log4Net 记录器以使用正确的文件?
    • 我当时很笨……现在明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2014-07-29
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多