[英]Different Minimum Level Logs Serilog
有沒有辦法區分 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"
}
]
},
它是否類似於“Args”下的另一個參數? 我在這個位置嘗試過“minimumnLevel”,但沒有用。
您正在尋找的設置是restrictedToMinimumLevel
。 這個 GitHub 問題展示了一些這樣的例子,但對於你的例子,你只需要將restrictedToMinimumLevel
添加到你的RollingFile
的Args
中:
"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"
}
]
},
從上面的答案開始,這就是我在代碼中設置它而不是配置的方式
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>();
在我這樣做之后,它適用於日志級別 Information 及更高級別。 調試沒有用。 這篇文章解釋了原因。
我必須像這樣設置一個“全球”最低水平。
LoggerConfiguration GetConfig()
=> new LoggerConfiguration()
.WriteTo.Seq(serverUrl: "http://localhost:5341", restrictedToMinimumLevel: LogEventLevel.Debug)
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Error)
.MinimumLevel.Verbose();
在您的配置中,您有一個 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"
}
]
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.