2016-03-21 65 views
0

這裏是我的appender:如何配置log4net以在翻滾時附加日期時間?

<appender name="ApplicationRollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="logs/application.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <preserveLogFileNameExtension value="true"/> 
    <datePattern value=".yyyy-MM-dd-hhmmss" /> 
    <maxSizeRollBackups value="50" /> 
    <maximumFileSize value="500KB" /> 
    <staticLogFileName value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger %C.%M --- %message --- %newlineTrace:%newline %stacktrace%newline" /> 
    </layout> 
    </appender> 

什麼它目前是輸出:

application.time-logging-started.1.log 
application.time-logging-started.2.log 
application.time-logging-started.3.log 

我要的是:

application.time-of-first-rollover.log 
application.time-of-second-rollover.log 
application.time-of-third-rollover.log 

才能做到這一點?如果是這樣,怎麼樣?

+0

不知道是否有內置的方式簡單的做到這一點,但你可以編寫自己從RollingFileAppender進行繼承和重寫文件PARAM的設置()做類似的東西附加'base.File =「PROGRAMNAME 「。 +時間戳+值;在時間戳之後,將配置文件中的文件值設置爲文件名中的任意值。 – Jacobr365

回答

0

看起來你的文件元素正在使用PatternString作爲文件名,滾動文件appender已經使用了名稱轉換。沒有必要重寫默認的工作。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
    <file value="logs\" /> 
    <datePattern value="yyyy-MM-dd-hhmmss'.log'" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <maxSizeRollBackups value="50" /> 
    <maximumFileSize value="500KB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
+0

但如果我不想要當前日誌文件夾? – NullVoxPopuli

+0

不會每秒都滾動文件,因爲rollingStyle是'Composite'? – stuartd

相關問題