NLog自動刪除日志,設置保留一周內日志


NLog自動刪除日志

          .Net6(.Net Core 6)的項目使用NLog記錄日志,在一次測試服務器,服務構建后無法啟動,經過查找原因發現是NLog記錄日志占用磁盤240G導致磁盤空間不夠,於是

 經過查找發現NLog.config的一個路由規則導致的如下:

問題一

<logger name="*" minlevel="Info" writeTo="logfile" />

 這個規則導致所有Info信息類型的消息,全部都會被寫入日志文件中,包括EFCore自帶的生成的sql語句日志,都會被寫入日志文件中如圖:

 

解決辦法:

修改后的代碼

<logger name="Microsoft.*" minlevel="Info" writeTo="logfile" final="true" />

命名空間Microsoft下所有類的、級別在Info的 日志信息都不會被記錄,同時其它后續規則也都會被忽略(因為這里設置了final="true"),自己記錄的日志會被記錄如:

_logger.LogInformation("我的Info日志");

問題二

解決了問題一,還不夠。雖然系統日志不會被記錄,只記錄自定義日志,但是記錄的日志隨着時間增加,日志文件所占磁盤空間仍然會不斷變大,

所以主題來了"NLog自動刪除日志"

配置如下:

簡要說明兩個參數: maxArchiveDays:7 保留七天內的日志、maxArchiveFiles=10 保留文檔最大數量為10。保留最近七天的十個日志文件,其他日志文件自動刪除。

    

GitHub上NLog參考文檔 :   https://github.com/NLog/NLog/wiki/File-target

  解決辦法:

 修改后加入代碼

 
         
 maxArchiveDays="7"
 maxArchiveFiles="10"
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM