MassTransit - 为MT日志使用不同的Log4Net文件

时间:2013-08-14 22:00:10

标签: log4net masstransit

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

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

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

我确实知道我可以使用单独的文件调用sbc.UseLog4Net(@"log4net.config")来完成此任务。

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

1 个答案:

答案 0 :(得分:2)

当然,这不是太难。在log4net配置中设置两个appender。

  <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