NLog 不删除旧文件
NLog is not deleting old files
我有以下 NLog (4.7.11) 的配置,它每天或当文件长满时创建一个新的日志文件。问题:它根本没有删除旧文件,所以现在日志文件夹中充满了数周前的日志文件。您能否提出问题所在以及如何使其正常工作?
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test-${date:format=yyyy-MM-dd}.log"
archiveFileName="d:\my_logs\nlog_test-{#}.log"
archiveAboveSize="104857600" archiveNumbering="DateAndSequence" archiveDateFormat="yyyy-MM-dd"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True" createDirs="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
问题看起来是,您每天都登录到不同的文件,因为文件名是使用当前日期创建的。第二天,对新文件进行日志记录。如果当前文件没有发生替换,则在达到最大大小之前不会创建存档。
请尝试以下配置,
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test.log"
archiveFileName="d:\my_logs\archives\nlog_test-{#}.log"
archiveAboveSize="104857600" archiveNumbering="DateAndSequence" archiveDateFormat="yyyy-MM-dd"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True" createDirs="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
NLog 4.5(及更新版本)使使用动态布局进行文件归档变得容易:
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test-${date:format=yyyy-MM-dd}.log"
archiveAboveSize="104857600"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
删除 archiveFileName
+ archiveNumbering
+ archiveDateFormat
.
另请参阅:https://github.com/NLog/NLog/wiki/File-target#archive-old-log-files
另请参阅:https://github.com/NLog/NLog/wiki/File-target#dynamic-vs-static-archive-logic
我有以下 NLog (4.7.11) 的配置,它每天或当文件长满时创建一个新的日志文件。问题:它根本没有删除旧文件,所以现在日志文件夹中充满了数周前的日志文件。您能否提出问题所在以及如何使其正常工作?
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test-${date:format=yyyy-MM-dd}.log"
archiveFileName="d:\my_logs\nlog_test-{#}.log"
archiveAboveSize="104857600" archiveNumbering="DateAndSequence" archiveDateFormat="yyyy-MM-dd"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True" createDirs="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
问题看起来是,您每天都登录到不同的文件,因为文件名是使用当前日期创建的。第二天,对新文件进行日志记录。如果当前文件没有发生替换,则在达到最大大小之前不会创建存档。
请尝试以下配置,
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test.log"
archiveFileName="d:\my_logs\archives\nlog_test-{#}.log"
archiveAboveSize="104857600" archiveNumbering="DateAndSequence" archiveDateFormat="yyyy-MM-dd"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True" createDirs="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
NLog 4.5(及更新版本)使使用动态布局进行文件归档变得容易:
<target name="appLogFile" type="File"
fileName="d:\my_logs\nlog_test-${date:format=yyyy-MM-dd}.log"
archiveAboveSize="104857600"
maxArchiveFiles="2" maxArchiveDays="2"
openFileCacheTimeout="30" concurrentWrites="True" keepFileOpen="True"
layout="${date:format=yyy-MM-dd HH\:mm\:ss.fff K} ${message}" />
删除 archiveFileName
+ archiveNumbering
+ archiveDateFormat
.
另请参阅:https://github.com/NLog/NLog/wiki/File-target#archive-old-log-files
另请参阅:https://github.com/NLog/NLog/wiki/File-target#dynamic-vs-static-archive-logic