首页 > 解决方案 > ASP.NET 样板使用 Log4Net 和 Castle Logging 添加额外的日志文件

问题描述

我一直在尝试查找有关如何在 ASP.NET Boilerplate MVC 中使用单独日志文件的文档和指南。

直接将 ILogger 注入并将消息推送到默认的 Log.txt 文件中,但是我需要一个单独的日志文件来记录大量批处理作业消息并保持整洁。

我找不到任何方法来使用 Log4Net.config 文件中的另一个日志。任何人都可以就正确的代码/配置提出建议吗?

标签: log4netaspnetboilerplate

解决方案


因此,我在查看 Hangfire 文档时偶然找到了答案,其中显示您可以通过让 Log4Net 侦听 Hangfire 名称和基于此的路由来配置将 Hangfire 消息发送到另一个日志文件。

通过 Log4Net.config 中的以下附加配置,我现在将在 MyClass 中正常创建的日志消息发送到 MyClass.txt 日志文件:

<appender name="RollingFileAppender_MyClass" type="log4net.Appender.RollingFileAppender" >
  <file value="App_Data/Logs/MyClass.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="32" />
  <maximumFileSize value="10000KB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
  </layout>
</appender>

<logger additivity="false" name="MyNamespace.MyClass">
  <level value="DEBUG" />
  <appender-ref ref="RollingFileAppender_MyClass" />
</logger>

为了完整起见,它以 AspNet Boilerplate 文档中记录的标准方式调用:

https://aspnetboilerplate.com/Pages/Documents/Logging


推荐阅读