log4net没有按大小滚动

log4net没有按大小滚动,log4net,Log4net,当我在c中启动我的应用程序MVVM Light WPF时,它会生成2个文件config_log.txt和config_log.txt.1。随着应用程序的发展,config_log.txt的大小不断增大,但在达到10KB时无法滚动。config_log.txt.1保持为空 当我关闭并重新启动我的应用程序时,config_log.txt变为config_log.txt.2,我现在总共有4个文件config_log.txt、config_log.txt.1、config_log.txt.2、confi

当我在c中启动我的应用程序MVVM Light WPF时,它会生成2个文件config_log.txt和config_log.txt.1。随着应用程序的发展,config_log.txt的大小不断增大,但在达到10KB时无法滚动。config_log.txt.1保持为空

当我关闭并重新启动我的应用程序时,config_log.txt变为config_log.txt.2,我现在总共有4个文件config_log.txt、config_log.txt.1、config_log.txt.2、config_log.txt.3

我希望只有当当前备份文件达到10KB或应用程序重新启动时,它才能创建新的备份。这是不是会发生什么事?它似乎正在创建额外的文件,并且其大小超过了10KB的限制

知道我做错了什么吗

这是我的log.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net"
       type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>

      <!--
      **
      ** Comment/Uncomment one of the following levels to enable/disable logging
      **
      -->
      <!--<level value="DEBUG" />-->
      <!--<level value="INFO" />-->
      <!--<level value="WARN" />-->
      <!--<level value="ERROR" />-->
      <!--<level value="FATAL" />-->
      <!--<level value="OFF" />-->
      <level value="DEBUG" />

      <appender-ref ref="HourlyAppender" />
      <!--<appender-ref ref="TraceAppender" />-->
      <appender-ref ref="ColoredConsoleAppender" />
    </root>

    <appender name="HourlyAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="${ALLUSERSPROFILE}/Optex/RedwallServer/Log/config_log.txt" />
      <staticLogFileName value="false" />
      <appendToFile value="false" />
      <rollingStyle value="Size" />
      <maximumFileSize value="10K"/>
      <MaxSizeRollBackups value="4"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="" />
        <param name="Footer" value="" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>

    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="White" />
        <backColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="Green" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <!--<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />-->
        <param name="ConversionPattern" value="%-5p %m%n" />
      </layout>
    </appender>

    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>
  </log4net>
</configuration>
根据:

此属性允许您使用后缀KB、MB或GB指定最大大小,以便将大小解释为分别以KB、MB或GB表示。 例如,值10KB将被解释为10240字节

所以你需要一个B和你的尺寸规格。如果替换此项:

<maximumFileSize value="10K"/>
为此:

<maximumFileSize value="10KB"/>

它应该可以像您期望的那样工作。

我对这方面很陌生,但是您是否尝试过将最大文件大小指定为10KB而不是10K?此外,您可能混合了模式布局。PatternLayout没有页眉或页脚参数,但DynamicPatternLayout有。实际上,最好将您的配置减少到最低限度,并确保它能正常工作,然后在顶部构建可选/很好的功能,同时确保它在每一步都能正常工作。@djikay,感谢您发现了“10KB”错误,它现在在大小达到10KB时滚动。我明天会看你的其他建议。我仔细看了文档,页眉/页脚实际上应该可以。你失踪的一定是B。但是,为了避免任何潜在的问题并使您可能遇到的任何问题更容易诊断,从配置中删除任何您不需要的内容是值得的。在任何情况下,我在回答中格式化了我的评论。