Serilogの異なるロガー間でログに記録されるレベルを区別する方法はありますか? MinimumLevel Debugをコンソール出力に記録したいが、警告のみをファイル出力に記録したい。私は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 issue はこれのいくつかの例を示していますが、例として、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"
}
]
},
構成には1つのSerilogロガーがありますが、2つのsinkがあります。シンクの1つはRollingFileで、もう1つはコンソールです。
シンクごとの最小ログレベルをオーバーライドできます(ただし、上げるだけです) 、引数はrestrictedToMinimumLevel
と呼ばれます。
ファイルシンクのappsettings.jsonファイルで、ロガーのデフォルトのDebug
からWarning
に最小ログレベルを上げたいので、次のようになります。
"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"
}
]
},