NLog 在每日滚动时不写 header
NLog not writing header on daily rollover
Nlog 在我的 Windows 服务中每天滚动日志文件时不会写入 header。如果日志文件不存在,它会写入 header,如果 archiveEvery="Minute",那么 header 会写入新的日志文件。这是 nlog 配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="trace"
internalLogFile="C:\Log\InnerLog.txt"
throwExceptions="true">
<variable name="AppName" value="Test Service" />
<targets>
<target
name="logfile"
xsi:type="File"
fileName="C:\Log\smgresp${date:format=MM-dd-yyyy}.log"
layout="${longdate} ${level:uppercase=true} ${message}"
archiveEvery="Day"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
这是一个错误吗?我正在通过检查一天的第一个日志条目的代码并将 header 等价物记录为信息条目来解决这个问题。
您应该使用带有动态文件名的存档模式(没有 archiveEvery
):
<target
name="logfile"
xsi:type="File"
fileName="C:\Log\smgresp${date:format=MM-dd-yyyy}.log"
layout="${longdate} ${level:uppercase=true} ${message}"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
或者使用带有静态文件名的存档模式(archiveEvery
和 archiveFileName
):
<target
name="logfile"
xsi:type="File"
layout="${longdate} ${level:uppercase=true} ${message}"
fileName="C:\Log\smgresp.log"
archiveFileName="C:\Log\smgresp.{#}.txt"
archiveEvery="Day"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
另请参阅:
Nlog 在我的 Windows 服务中每天滚动日志文件时不会写入 header。如果日志文件不存在,它会写入 header,如果 archiveEvery="Minute",那么 header 会写入新的日志文件。这是 nlog 配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="trace"
internalLogFile="C:\Log\InnerLog.txt"
throwExceptions="true">
<variable name="AppName" value="Test Service" />
<targets>
<target
name="logfile"
xsi:type="File"
fileName="C:\Log\smgresp${date:format=MM-dd-yyyy}.log"
layout="${longdate} ${level:uppercase=true} ${message}"
archiveEvery="Day"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
这是一个错误吗?我正在通过检查一天的第一个日志条目的代码并将 header 等价物记录为信息条目来解决这个问题。
您应该使用带有动态文件名的存档模式(没有 archiveEvery
):
<target
name="logfile"
xsi:type="File"
fileName="C:\Log\smgresp${date:format=MM-dd-yyyy}.log"
layout="${longdate} ${level:uppercase=true} ${message}"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
或者使用带有静态文件名的存档模式(archiveEvery
和 archiveFileName
):
<target
name="logfile"
xsi:type="File"
layout="${longdate} ${level:uppercase=true} ${message}"
fileName="C:\Log\smgresp.log"
archiveFileName="C:\Log\smgresp.{#}.txt"
archiveEvery="Day"
maxArchiveFiles="30"
header="${AppName} version ${assembly-version}"
/>
另请参阅: