2016-10-18 85 views
3

我想限制日誌文件的大小爲50MB。我在web.config中配置如下:Sitecore 8,限制日誌記錄的大小

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, Sitecore.Logging"/> 

現在確定如何設置日誌記錄的最大文件大小?

回答

1

默認情況下,Sitecore配置爲所有日誌記錄提供了log4net.Appender.SitecoreLogFileAppender類型。 SitecoreLogFileAppender不支持最大文件大小。

您可以將此配置更改爲使用log4net.Appender.RollingFileAppender。它支持最大文件大小的屬性。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="$(dataFolder)/logs/log.{date}.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="0" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" /> 
    </layout> 
</appender> 

該解決方案有一個缺點 - 每次超過文件大小限制時,所有日誌都將被刪除。

爲避免完全截斷並仍然解決日誌文件過大的問題,可以將maxSizeRollBackups設置爲較小的數字,例如, 2,並分別減少maximumFileSize。這樣,在截斷之後,您仍然有最新的日誌消息可用,而不是沒有。

log4net這裏:Maximum Filesize of LogFileAppender in Log4Net