NLog:按日期范围和文件大小限制自动清除存档的旧日志文件

时间:2018-12-28 08:57:38

标签: c# .net nlog

所以,主要问题-我只想删除30天以上的归档日志,并且我的日志文件的最大大小必须为100 mb。

手册说:

  

基于时间的文件归档日志文件也可以自动归档   根据时间。此配置将在开始时存档文件   ,并且将使用滚动文件命名,因此,   前一天总是可以在archives // log.0.txt中找到,从两个日志   天前在archives // log.1.txt中,依此类推。此配置将   最多保留7个归档文件,因此超过1周的日志将被保留   自动删除。

<target name="file" xsi:type="File"
layout="${longdate} ${logger} ${message}" 
fileName="${basedir}/logs/logfile.txt" 
archiveFileName="${basedir}/archives/log.{#}.txt"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="7"
concurrentWrites="true"
keepFileOpen="false"
encoding="iso-8859-2" />

但不适用于文件大小限制。它会生成7个文件,并在每次生成100mb新文件时进行清理。我做了一些测试,每5分钟生成一次日志文件。因此,是否有可能考虑基于时间的文件归档的文件大小限制?

我的代码:

<target xsi:type="File" 
name="InfoFile"
fileName="logs/log.txt"
layout="[${date:yyyy-MM-dd}]"
archiveAboveSize="104857600"
archiveEvery="Day"
archiveNumbering="Rolling"
archiveFileName="logs/archives/log.{###}.txt"
archiveDateFormat="yyyyMMdd-hhmmss" 
maxArchiveFiles="30"
enableFileDelete="true" />

0 个答案:

没有答案