如何在log4net配置中设置maxSizeRollBackups和maximumFileSize属性?

时间:2017-11-08 12:35:38

标签: c# asp.net asp.net-core log4net log4net-configuration

我有一个ASP.NET核心Web应用程序,通过Nuget添加log4net 2.0.8并使用此配置文件初始化:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFileAppenderInfo" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-info.log" />
    <maxSizeRollBackups value="500" />
    <maximumFileSize value="5MB" />
    <threshold value="DEBUG"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d [%t] %-5p - %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="DEBUG" />
      <levelMax value="INFO" />
    </filter>
    <filter class="log4net.Filter.DenyAllFilter"/>
  </appender>
  <appender name="RollingFileAppenderError" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-errors.log" />
    <maxSizeRollBackups value="500" />
    <maximumFileSize value="5MB" />
    <threshold value="WARN"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="WARN" />
      <levelMax value="ERROR" />
    </filter>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="RollingFileAppenderInfo" />
    <appender-ref ref="RollingFileAppenderError" />
  </root>
</log4net>

这是在Startup中初始化的,如下所示:

loggerFactory.AddLog4Net($"log4net.{env.EnvironmentName}.config");

这使用a solution I found连接ASP.NET Core中的log4net。显然,以上配置的几个版本名为log4net。开发 .config等,但它们都非常相似。当我在Visual Studio中本地运行时,我在输出窗口中看到以下错误:

  

log4net:错误XmlHierarchyConfigurator:找不到属性   [maxSizeRollBackups]在[log4net.Appender.FileAppender]上设置对象

     

log4net:错误XmlHierarchyConfigurator:找不到属性   [maximumFileSize]在[log4net.Appender.FileAppender]上设置对象

这些错误仅供内部使用,似乎不会影响正在运行的应用。但我需要能够配置这些log4net属性。那么如何在我的log4net配置中设置maxSizeRollBackupsmaximumFileSize属性?我做错了吗?

1 个答案:

答案 0 :(得分:2)

属性不是FileAppender的一部分,请尝试使用RollingFileAppender。那是你需要的追加者:

 type="log4net.Appender.RollingFileAppender"