jol*_*r23 5 c# serilog asp.net-core asp.net-core-2.1
有没有办法区分Serilog的不同记录器之间记录的级别?我希望能够将MinimumLevel Debug记录到控制台输出,但是将Warning和以上记录到我的文件输出中。我正在使用ASP.NET Core 2.1,这是appsetting.json当前的样子:
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "RollingFile",
"IsJson": true,
"Args": {
"pathFormat": "C:\\Logs\\Log-{Hour}.json",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
},
{
"Name": "Console"
}
]
},
Run Code Online (Sandbox Code Playgroud)
它类似于“ Args”下的另一个参数吗?我已经在此位置尝试了“ minimumnLevel”,但没有成功。
Dam*_*yer 11
根据上面的答案,这就是我在代码中设置它而不是配置的方式
LoggerConfiguration GetConfig()
=> new LoggerConfiguration()
.WriteTo.Seq(serverUrl: "http://localhost:5341", restrictedToMinimumLevel: LogEventLevel.Debug)
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Error);
var logger = GetConfig().CreateLogger();
builder.RegisterInstance(logger).As<ILogger>();
Run Code Online (Sandbox Code Playgroud)
在我这样做之后,它适用于日志级别信息及以上。调试没成功。这篇文章解释了原因。
我必须像这样设置一个“全局”最低级别。
LoggerConfiguration GetConfig()
=> new LoggerConfiguration()
.WriteTo.Seq(serverUrl: "http://localhost:5341", restrictedToMinimumLevel: LogEventLevel.Debug)
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Error)
.MinimumLevel.Verbose();
Run Code Online (Sandbox Code Playgroud)
在您的配置中,您有一个 Serilog 记录器,但有 2 个接收器。您的接收器之一是 RollingFile,另一个是 Console。
您可以覆盖(但仅提高)每个接收器的最小日志记录级别,该参数称为restrictedToMinimumLevel。
由于您想要将记录器的默认最低日志记录级别提高Debug到Warning文件接收器中的默认日志记录级别,因此在 appsettings.json 文件中,它看起来像这样:
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "RollingFile",
"IsJson": true,
"Args": {
"pathFormat": "C:\\Logs\\Log-{Hour}.json",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
"restrictedToMinimumLevel": "Warning"
}
},
{
"Name": "Console"
}
]
},
Run Code Online (Sandbox Code Playgroud)
您要查找的设置是restrictedToMinimumLevel。这GitHub的问题显示了这样一些例子,但是对于你的榜样,你只需要添加restrictedToMinimumLevel到您Args的RollingFile:
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "RollingFile",
"IsJson": true,
"Args": {
"pathFormat": "C:\\Logs\\Log-{Hour}.json",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
"restrictedToMinimumLevel": "Warning"
}
},
{
"Name": "Console"
}
]
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4950 次 |
| 最近记录: |