Rooobins 2023-02-16 11:10 采纳率: 0%
浏览 27

C#平台NLog日志模块,maxArchiveFiles配置后,不能控制文件数量


<target xsi: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",但是不起作用,还是控制不了日志文件数量,希望得到指教

  • 写回答

1条回答 默认 最新

  • 量化研究所 2023-02-16 11:14
    关注

    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" />
    
    

    这样基本就可以解决了,如果这样仍然不行,可以检查一下您的日志文件的文件名和路径是否正确,以及是否有其他地方的配置覆盖了您的设置。

    望采纳。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月16日

悬赏问题

  • ¥15 python变量和列表之间的相互影响
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)