我已经在 .net core 中实现了 Serilog,我想为每种日志类型实现多个日志文件。例如 Error.log 文件将只包含错误,Trace.log 文件将只包含 Trace 日志,Warning.log 将只包含警告消息而不包含错误消息。我使用了 Serilog.Sinks.RollingFile 和restrictedToMinimumLevel,我能够生成多个文件,但由于restrictedToMinimumLevel,它也记录在定义的级别之上。是否有任何选项/方法来设置logOnlyLevel 之类的东西。我可以使用过滤器,但有没有更好的选择。
"Serilog": {
"Using": ["Serilog.Sinks.RollingFile"],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [{
"Name": "RollingFile",
"Args": {
"pathFormat": "Logs/Information.txt",
"rollingInterval": "Day",
"fileSizeLimitBytes": "2000000",
"retainedFileCountLimit": "10",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}|{EventId}|{Message}|{Scope} {NewLine}",
"restrictedToMinimumLevel": "Information"
}
}, {
"Name": "RollingFile",
"Args": {
"pathFormat": "Logs/Warning.txt",
"rollingInterval": "Day",
"fileSizeLimitBytes": "2000000",
"retainedFileCountLimit": "10",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}|{EventId}|{Message}|{Scope} {NewLine}",
"restrictedToMinimumLevel": "Warning"
}
}
}