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」を試しましたが、機能しませんでした。
ベストアンサー1
あなたが探している設定は ですrestrictedToMinimumLevel
。このGitHub問題これにいくつかの例を示しますが、あなたの例では、 forrestrictedToMinimumLevel
に以下を追加するだけです: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"
}
]
},