c# - 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 来实现这一点?
解决方案
推荐阅读
- intellij-idea - IntelliJ IDEA - 缺少对 Kotlin 存储库的 Spring Data JPA IDE 支持
- python - 将多个变量声明为同一类型
- linux - 从特定行和列读取值
- angularjs - 即使过滤器是正数,Angular $filter 也会过滤负数
- javascript - 一旦到达部分的底部,是否可以在 pagePiling.js 中添加停止?
- git - 如何从子仓库开发切换到保留所有历史记录的新仓库?
- azure - 获取最新版本的适用于 Ubuntu 的 Azure Python SDK 的正确方法是什么?
- javascript - 无法访问已更改对象的键值对
- c++ - 如何使用静态 const 变量初始化静态 std::array?
- glsl - 在片段着色器中绘制球体法线贴图