C# 每次使用Serilog创建新记录器时,使用更新的后缀创建新文件
我想让Serilog在每次创建新的记录器时都以递增的后缀写入一个新文件 例如:C# 每次使用Serilog创建新记录器时,使用更新的后缀创建新文件,c#,logging,asp.net-core,serilog,C#,Logging,Asp.net Core,Serilog,我想让Serilog在每次创建新的记录器时都以递增的后缀写入一个新文件 例如: log_001.txt log_002.txt 基本上,我希望OP在github问题上发布以下行为: 我想要的是OP想要摆脱的 当我使用下面的代码时,仅生成一个文件,即使记录器被多次更新: var log = new LoggerConfiguration() .WriteTo.RollingFile(@"C:\temp\testlog\log-{Date}.txt") .CreateLogge
- log_001.txt
- log_002.txt
var log = new LoggerConfiguration()
.WriteTo.RollingFile(@"C:\temp\testlog\log-{Date}.txt")
.CreateLogger();
log.Debug("Created logger...");
我建议您检查
生成的一个文件是否包含创建的记录器…
对于LoggerConfiguration
,其默认LogEventLevel
为Serilog.Events.LogEventLevel.Information
,这意味着您的log.Debug(“创建的记录器…”)代码>代码不会创建日志记录
我建议您使用以下代码进行测试:
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.txt
和log_002.txt
完全相同的文件名,您需要实现自己的sink
,请查看此讨论。对于记录器来说,这似乎是一个不寻常的要求。也许一个简单的文件。Open+Write行是另一种选择?@ChristophLütjen我想我可以这样做。尽管如此,我还是希望利用一些常见的日志功能(如时间戳、上下文、错误级别、属性丰富、json记录变量等)