首页 > 解决方案 > NLog - 如果没有新消息,如何在每日更改时归档日志文件

问题描述

我正在使用此 FileTarget 以编程方式配置 NLog:

var target = new FileTarget(TargetName)
        {
            FileName = Path.Combine(LogDir, "${level}.log"),

            CreateDirs = true,

            ArchiveFileName = Path.Combine(LogDir, "{#}.${level}.zip"),
            ArchiveNumbering = ArchiveNumberingMode.Date,
            ArchiveDateFormat = "yyyy-MM-dd",
            ArchiveEvery = FileArchivePeriod.Day,
            MaxArchiveFiles = MaxArchiveFiles,
            OpenFileCacheSize = 5,
            

            KeepFileOpen = true,
            CleanupFileName = false,
            Layout = NLogLayouts.BasicLayout(),
            EnableArchiveFileCompression = true,
            Encoding = Encoding.UTF8
        };

一切都按原样工作:每个日志级别都有单独的日志文件。当新的一天开始(22.09.2020)并且一些消息被写入(例如,INFO)日志时,将创建存档。它的名字是 2020-09-21.Info.zip 同时,我的程序没有 DEBUG 级别的新消息,并且在生成这样的消息之前没有创建存档。问题是 DEBUG 级别的消息只能在 2-3 天或更长时间内写入,但我希望 Debug.log 文件在日期更改时存档 - 而不是在新消息出现时存档。如何配置 NLog 来实现这一点?

标签: c#nlog

解决方案


推荐阅读