.net Nlog存档文件名:迭代而非有效日期
我的配置:.net Nlog存档文件名:迭代而非有效日期,.net,nlog,.net,Nlog,我的配置: <target xsi:type="File" name="default" archiveAboveSize="10000000" layout="${VerboseLayout}" fileName="${basedir}/logs/Log_${shortdate}.log" keepFileOpen="false" archiveFileName="${basedir}
<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" />
您使用的NLog文件归档逻辑错误:
fileName="${basedir}/logs/Log_${shortdate}.log"
archiveFileName="${basedir}/logs/Log_${shortdate}.{##}.log"
archiveEvery="Day"
您不应该为archiveFileName
指定${shortdate}。它将使用当前时间,而不是上一个logevent(您期望的)的时间
您不应该指定archiveEvery=“Day”
,因为文件名已经包含${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"
- archiveFileName-使用{#}允许归档清理生成正确的文件通配符
- archiveDateFormat-必须与文件名的${date:format=}匹配(因此,如果需要更改,请记住更正这两种日期格式)
- ArchiveNumber=DateAndSequence-配置归档清理以支持将文件名解析为日期和序列号
- archiveEvery=Year-激活存档清理,但也激活存档文件操作。因为配置的文件名会自动确保存档文件操作,所以我们不需要任何额外的存档操作(例如,避免在午夜生成额外的空文件)
- maxArchiveFiles-要保留多少存档文件
fileName="${basedir}/logs/Log_${shortdate}.log"
archiveAboveSize="10000000"
maxArchiveFiles="50"
fileName="${basedir}/logs/Log_${shortdate}.log"
archiveAboveSize="10000000"
maxArchiveFiles="50"