0

我喜欢在我的应用程序运行时使用最新的日志文件打开一个编辑器。我有一个 10MB 的文件大小限制和天作为滚动间隔。

当第一个文件log-20210314.log填满并且 serilog 开始一个新文件时,新文件有一个新名称log-20210314_001.log,所以我需要更改我在编辑器中查看的文件。

相比之下,log4j 的 RollingFileAppender默认翻转策略是这样工作的:

翻转次数 主动输出目标 存档的日志文件 描述
0 foo.log - 所有日志记录都将转到初始文件。
1 foo.log foo-1.log 在第一次翻转期间,foo.log 被重命名为 foo-1.log。一个新的 foo.log 文件被创建并开始被写入。
2 foo.log foo-2.log,foo-1.log 在第二次翻转期间,foo.log 被重命名为 foo-2.log。一个新的 foo.log 文件被创建并开始被写入。
3 foo.log foo-3.log、foo-2.log、foo-1.log 在第三次翻转期间,foo.log 被重命名为 foo-3.log。一个新的 foo.log 文件被创建并开始被写入。

在该示例中,如果我的编辑器打开到foo.log,我将始终看到最新的日志条目(翻转后文件立即为空的几秒钟除外)。

如何使 serilog-sinks-file 以这种方式运行?

我的配置:

{
  "Serilog": {
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": ".\\logs\\log-.log",
          "rollingInterval": "Day",
          "rollOnFileSizeLimit": true,
          "fileSizeLimitBytes": 1000000,
          "restrictedToMinimumLevel": "Debug",
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] ({SourceContext}) {Message}{NewLine}{Exception}"
        }
      }
    ]
  }
}
4

0 回答 0