我目前有一个使用MassTransit的Windows服务。此Windows服务使用Log4Net进行所有日志记录,现在我还要打开Log4Net以进行内部MassTransit日志记录。但是,我想:
我在初始化总线时添加了sbc.UseLog4Net()
,效果很好。但是,它正在写入与我的Windows服务日志相同的文件。
我确实知道我可以使用单独的文件调用sbc.UseLog4Net(@"log4net.config")
来完成此任务。
我真正想要的是能够修改我当前的log4net.config文件来完成此任务。
答案 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。