1. 程式人生 > 其它 >解決Log4net多程序訪問日誌檔案

解決Log4net多程序訪問日誌檔案

<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock
" />
<!--日誌路徑--> <param name="File" value="log/err/" /> <param name="Encoding" value="utf-8" /> <!--是否是向檔案中追加日誌--> <param name="AppendToFile" value="true" /> <!--log保留天數--> <param name="MaxSizeRollBackups" value="10" /> <!--日誌檔名是否是固定不變的--> <param name="StaticLogFileName
" value="false" /> <!--日誌檔名格式為:2008-08-31.log--> <param name="DatePattern" value="yyyy-MM-dd&quot;error.log&quot;" /> <!--日誌根據日期滾動--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <!-- <param name="Header" value="[Header]
" /> --> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> <!-- <param name="Footer" value="%n [Footer] " /> --> <!-- <conversionPattern --> <!-- value="&lt;HR COLOR=red>%n時間:%d [%t] &lt;BR>%n級別:%-5p &lt;BR>%n類:%c [%x] &lt;BR>%n%m &lt;BR>%n &lt;HR Size=1>" /> --> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMax" value="Error" /> <param name="LevelMin" value="Error" /> </filter> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>

多程序讀取檔案,會造成日誌檔案被佔用,如下:
正由另一個程序使用,因此該程序無法訪問此檔案

需要在Log4net.config新增該配置項

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />