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

How can I set the maxSizeRollBackups and maximumFileSize properties in my 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.Development.config 等,但它们都非常相似。当我在 Visual Studio 本地 运行 时,我在输出 windows 中看到以下错误:

log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [maxSizeRollBackups] to set object on [log4net.Appender.FileAppender]

log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [maximumFileSize] to set object on [log4net.Appender.FileAppender]

这些错误只是内部错误,似乎不会影响 运行ning 应用程序。但我需要能够配置这些 log4net 属性。那么如何在我的 log4net 配置中设置 maxSizeRollBackupsmaximumFileSize 属性呢?我做错了什么吗?

属性不是 FileAppender 的一部分,试试 RollingFileAppender。那就是你需要的 appender:

 type="log4net.Appender.RollingFileAppender"