2014-07-16 99 views
0

當我啓動我的應用程序(MVVM輕型WPF在C#中)時,它會生成2個文件config_log.txtconfig_log.txt.1。隨着應用程序的進展config_log.txt的規模增長,但達到10KB時無法翻身。 (config_log.txt.1保持空着)。log4net未滾動大小

當我關閉並重新啓動我的應用程序,config_log.txt變得config_log.txt.2,我現在有4個文件總計(config_log.txtconfig_log.txt.1config_log.txt.2config_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> 
+0

我在這方面很新穎,但是你有沒有試過將'maximumFileSize'指定爲'10KB'而不是'10K'? – djikay

+0

此外,您可能正在混合圖案佈局。 'PatternLayout'沒有'header'或'footer'參數,但是'DynamicPatternLayout'。實際上,最好將您的配置減少到最低限度,並確保它可以正常工作,然後在可靠性上增加可選/可用功能,同時確保它在每一步都能正常工作。 – djikay

+0

@djikay,感謝您發現'10KB'錯誤,它現在會在達到10KB大小時滾動。明天我會看看你的其他建議。 – spiderplant0

回答

0

根據the documentation for maximumFileSize

這個屬性允許你指定後綴爲 「KB」 最大尺寸 「MB」 或「GB」,以便將大小解釋爲分別以千字節,兆字節或千兆字節表示。
例如,值「10KB」將被解釋爲10240字節。

所以你需要一個B與你的尺寸規格。如果更換此:

<maximumFileSize value="10K"/> 

與此:

<maximumFileSize value="10KB"/> 

,你期望它應該工作。