首页 > 解决方案 > 每次使用 Serilog 创建新的 Logger 时,创建一个带有更新后缀的新文件

问题描述

每次创建新的 Logger 时,我都想让 Serilog 写入一个后缀递增的新文件。

例如:

基本上,我想要 OP 在这个 github 问题上发布的行为: https ://github.com/serilog/serilog-sinks-rollingfile/issues/9

我想要的是OP试图摆脱。

当我在下面使用此代码时,即使记录器被new多次编辑,也只会生成一个文件:

var log = new LoggerConfiguration()
    .WriteTo.RollingFile(@"C:\temp\testlog\log-{Date}.txt")
    .CreateLogger();

log.Debug("Created logger...");

标签: c#loggingasp.net-coreserilog

解决方案


我建议你检查是否generated one file包含Created logger....

对于LoggerConfiguration,它的默认值LogEventLevelSerilog.Events.LogEventLevel.Information这意味着您的log.Debug("Created logger...");代码不会创建日志记录。

我建议您使用以下代码进行测试:

        var log = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .WriteTo.RollingFile(@"C:\Windows\Temp\testlog\log-{Date}.txt")
                .CreateLogger();

        log.Debug("Created logger1...");

        var log1 = new LoggerConfiguration()
                 .MinimumLevel.Debug()
                .WriteTo.RollingFile(@"C:\Windows\Temp\testlog\log-{Date}.txt", Serilog.Events.LogEventLevel.Debug)
                .CreateLogger();

        log1.Debug("Created logger2...");

上面的代码将创建两个文件,如果您需要与log_001.txtand完全相同的文件名log_002.txt,则需要实现自己的文件名sink,请查看此讨论Filename without date #59


推荐阅读