異なる最小レベルのログSerilog質問する

異なる最小レベルのログ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」を試しましたが、機能しませんでした。

ベストアンサー1

あなたが探している設定は ですrestrictedToMinimumLevel。このGitHub問題これにいくつかの例を示しますが、あなたの例では、 forrestrictedToMinimumLevelに以下を追加するだけです:ArgsRollingFile

"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"
      }
    ]
  },

おすすめ記事