type="File" name="info"
layout="${logLayout}"
fileName="${logDir}/info/${logFileName}"
archiveFileName="${logDir}/info/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="1"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
上述代码,是C#平台NLog的日志模块的配置,我设置了maxArchiveFiles="1",但是不起作用,还是控制不了日志文件数量,希望得到指教
NLog的maxArchiveFiles属性是用来指定日志文件保留的最大数量,超过这个数量后,旧的日志文件将被删除。在您的配置中,您设置了maxArchiveFiles="1",这应该限制保留的日志文件数量为1个,但是您仍然无法控制文件数量。
有可能是您设置的日志文件名称中不包含日期信息,因此,NLog无法识别不同日期的日志文件。您可以尝试在文件名中添加日期格式化参数,例如${date:format=yyyyMMdd},这将在文件名中添加当前日期的8位数字格式。
例如,您的配置可以改成以下形式,其中${date:format=yyyyMMdd}将添加当前日期的8位数字格式:
<target xsi:type="File" name="info"
layout="${logLayout}"
fileName="${logDir}/info/${logFileName}.${date:format=yyyyMMdd}"
archiveFileName="${logDir}/info/${logArchiveFileName}.${date:format=yyyyMMdd}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="1"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
这样基本就可以解决了,如果这样仍然不行,可以检查一下您的日志文件的文件名和路径是否正确,以及是否有其他地方的配置覆盖了您的设置。
望采纳。