解決Log4net多程序訪問日誌檔案
阿新 • • 發佈:2021-10-18
<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"error.log"" /> <!--日誌根據日期滾動--> <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="<HR COLOR=red>%n時間:%d [%t] <BR>%n級別:%-5p <BR>%n類:%c [%x] <BR>%n%m <BR>%n <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" />