C# Nlog - 如何轮换日志文件,以便创建轮换的日志文件和档案

问题描述

我在创建以下日志轮换设置时遇到问题:

1 - 当前日志文件 (service.log)

10 - 轮换日志文件,如 service.1.log、service.2.log 等。日志文件大小为 10MB。

10 - 归档日志

文件达到 10mb 时,当有 10 个这样的轮换文件时,我们将其以名称 .1 丢弃,最后一个存档,并且还有 10 个存档。

示例:

  1. 我有一个日志文件 - service.log。当文件达到 10mb 时,我们将其丢弃为 'service.1.log' 名称并创建一个新的 'service.log' 文件。然后,当这种情况再次发生时,我们会丢弃名为“service.2.log”的日志文件

  2. 当有 10 个这样的轮换文件时,则最旧的一个被归档,因此我们有以下情况: 1 - service.log(新创建的文件); 9 个文件 - service.2.log,service.3.log,.... service.10.log; 1 个从“service.1.log”文件创建的存档。

  3. 我们也应该有最多 10 个这样的档案。应该删除最旧的档案。

谢谢!

解决方法

认为最接近的选项是 archiveNumbering="Rolling"

滚动

<target name="file" xsi:type="File"
    ...
    fileName="service.log"
    archiveFileName="service.{##}.log"
    archiveNumbering="Rolling"
    archiveAboveSize="10000000"
    maxArchiveFiles="10"  />

文件名示例(最新文件在前):

service.log
service.00.log
service.01.log
service.02.log

另见:https://github.com/NLog/NLog/wiki/FileTarget-Archive-Examples

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...