首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLog文件名中的日期并限制日志文件的数量

问NLog文件名中的日期并限制日志文件的数量
EN

Stack Overflow用户
提问于 2017-10-27 15:00:38
回答 1查看 3.1K关注 0票数 3

我想通过NLog实现以下滚动文件的行为:

  1. 在启动新文件时防止重命名或移动文件,以及
  2. 限制旧日志文件的总数或大小,以避免随着时间的推移出现容量问题。

第一个要求可以实现,例如,在文件名中添加像${shortdate}这样的时间戳。示例:

代码语言:javascript
复制
logs\trace2017-10-27.log <-- today's log file to write   
logs\trace2017-10-26.log  
logs\trace2017-10-25.log  
logs\trace2017-10-24.log <-- keep only the last 2 files, so delete this one 

但是,根据其他帖子,不可能在文件名和存档参数(如maxArchiveFiles )中一起使用日期。如果使用maxArchiveFiles,则必须保持日志文件名不变:

代码语言:javascript
复制
logs\trace.log <-- today's log file to write   
logs\archive\trace2017-10-26.log  
logs\archive\trace2017-10-25.log  
logs\archive\trace2017-10-24.log <-- keep only the last 2 files, so delete this one 

但是在这种情况下,每天在第一次写入时,它都会将昨天的跟踪移动到存档,并启动一个新的文件。

我想阻止移动跟踪文件的原因是因为我们使用Splunk日志监视器监视日志文件夹中的文件以进行更新、读取新行和向Splunk提供提要。

我担心的是,如果我在23:59:59.567编写了一个事件,那么下一个事件在00:00:00.002在日志监视器能够在那一秒内读取之前清除之前的内容。

老实说,我还没有测试过这个场景,因为由于我的团队不拥有Splunk等等,设置起来会很复杂。所以,如果这种情况不可能发生,请纠正我。

注意,我还知道可以通过网络连接直接给Splunk提供其他方式,但是我们公司目前的Splunk设置是从日志文件中读取,这样就更容易了。

知道如何用NLog解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 17:39:13

当使用NLog 4.4 (或更高版本)时,您必须进入万圣节模式,并做一些诡计。

此示例在同一文件夹中每小时生成日志文件,并确保在840小时(35天)后执行归档清理:

代码语言:javascript
复制
    fileName="${logDirectory}/Log.${date:format=yyyy-MM-dd-HH}.log"
    archiveFileName="${logDirectory}/Log.{#}.log"
    archiveDateFormat="yyyy-MM-dd-HH"
    archiveNumbering="Date"
    archiveEvery="Year"
    maxArchiveFiles="840"
  • archiveFileName -使用{#}允许归档清理生成正确的文件通配符。
  • archiveDateFormat -必须与fileName的${date:format=}匹配(因此,如果需要更改,请记住纠正这两种日期格式)
  • archiveNumbering=Date -配置归档清理以支持将文件名解析为日期。
  • archiveEvery=Year -激活归档清理,但也激活归档文件操作。因为配置的fileName自动确保归档文件操作,所以我们不需要任何额外的归档操作(Ex )。避免在午夜生成额外的空文件)。
  • maxArchiveFiles -要保存多少归档文件。

使用NLog 4.5 (仍然处于BETA版),它将变得容易得多(因为只需指定MaxArchiveFiles)。另见https://github.com/NLog/NLog/pull/1993

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46978048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档