每次使用 Serilog 创建新的 Logger 时,都会创建一个具有更新后缀的新文件

Create a new file with an updated suffix every time a new Logger is created with Serilog

每次创建新记录器时,我都希望 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...");

我建议你检查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.txtlog_002.txt,你需要自己实现sink,查看这个讨论Filename without date #59.