今天再繼續談NLog,寫檔案的Log,會有一個問題,就是日子久了難免Log會越來越大,大到把硬碟塞爆,然後伺服器Error。
所以自動化清除Log是有必要的,一般保存3個月已經不錯了。NLog有這樣的功能,只要修改config檔案就能辦到,如下:
<target xsi:type="File" name="f"
fileName="${basedir}/App_Data/logs/logfile.log"
layout="${longdate} ${uppercase:${level}} ${message}"
archiveFileName="${basedir}/App_Data/Logs/archives/log.{#}.log"
archiveNumbering="DateAndSequence"
archiveDateFormat="yyyyMMdd"
archiveEvery="Day"
maxArchiveFiles="90" />
這個範例表示的是,即時的Log寫在App_Data/logs/logfile.log裡,然後其他天打包的寫在App_Data/Logs/archives/下,並且用日期來編檔名,保留90天內的資料。
其他有關檔名的教學,請參考以下連結:
https://github.com/NLog/NLog/wiki/FileTarget-Archive-Examples#archive-numbering-examples