我的配置:
<target xsi:type="File"
name="default"
archiveAboveSize="10000000"
layout="${VerboseLayout}"
fileName="${basedir}/logs/Log_${shortdate}.log"
keepFileOpen="false"
archiveFileName="${basedir}/logs/Log_${shortdate}.{##}.log"
archiveNumbering="Sequence"
archiveEvery="Day"
maxArchiveFiles="50" />
有时候命名是可以的,有时而不是有效的日期我得到日期+ 1和迭代(如果达到archiveAboveSize上限)。 我的上一篇文件:
Log_2018-01-15.log
Log_2018-01-15.00.log (should be Log_2018-01-14)
Log_2018-01-13.log
Log_2018-01-13.00.log (should be Log_2018-01-12)
Log_2018-01-11.log
Log_2018-01-10.log
答案 0 :(得分:1)
您正在使用NLog文件存档逻辑错误:
fileName="${basedir}/logs/Log_${shortdate}.log"
archiveFileName="${basedir}/logs/Log_${shortdate}.{##}.log"
archiveEvery="Day"
您不应为archiveFileName
指定 $ {shortdate} 。它将使用当前时间,而不是前一个logevent(您期望的)的时间。
您不应指定archiveEvery="Day"
,因为fileName已包含${shortdate}
,因此它会自动滚动到新文件。
相反,当使用NLog 4.4或更早版本时,你应该这样做:
fileName="${basedir}/logs/Log_${date:format=yyyy-MM-dd}.log"
archiveFileName="${basedir}/logs/Log_{##}.log"
archiveDateFormat="yyyy-MM-dd"
archiveNumbering="DateAndSequence"
archiveAboveSize="10000000"
archiveEvery="Year"
maxArchiveFiles="50"
使用NLog 4.5(或更新版本)时,以下内容应该有效:
fileName="${basedir}/logs/Log_${shortdate}.log"
archiveAboveSize="10000000"
maxArchiveFiles="50"