Различные журналы минимального уровня Serilog - PullRequest
0 голосов
/ 27 августа 2018

Есть ли способ отличить, какой уровень регистрируется между различными регистраторами для 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"? Я пробовал «imumnLevel »в этом месте, но он не работал.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

В вашей конфигурации у вас есть один регистратор 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"
      }
    ]
  },
0 голосов
/ 27 августа 2018

Требуемая настройка: 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"
      }
    ]
  },
...