Журнал ядра ASP.NET - отфильтровывать элементы системы - PullRequest
0 голосов
/ 02 октября 2018

Я недавно настроил Serilog для обработки моих действий по регистрации в базе данных.Однако, когда я запустил его, я заметил множество действий System и Microsoft, заполняющих строки.Я попытался добавить несколько переопределений в мои фильтры Serilog, но некоторые, такие как «Выполненный метод действия» и «Команда Db», остаются.Что мне нужно переопределить, чтобы удалить их из моих журналов?

Мой appsettings.json

"Serilog": {
    "MinimumLevel": "Information",
    "Override": {
      "Microsoft": "Error",
      "Microsoft.EntityFrameworkCore.Storage.IRelationalCommandBuilderFactory": "Error",
      "Microsoft.EntityFrameworkCore.Database.Command": "Error",
      "Microsoft.AspNetCore.Hosting.Internal.WebHost": "Error",
      "ToDoApi": "Error",
      "Engine": "Error",
      "System": "Error"
    },

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Ваш MinimumLevel раздел конфигурации не совсем правильный: Override должен быть под ним.Вам нужно:

  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Error",
        "ToDoApi": "Error",
        "Engine": "Error",
        "System": "Error"
      }
    }
  }
0 голосов
/ 02 октября 2018

Я нашел намного лучший способ.В моей Программе, где я настраиваю регистратор:

Log.Logger = new LoggerConfiguration()
               .ReadFrom.Configuration(Configuration)
               .Filter.ByExcluding(Matching.FromSource("Microsoft"))
               .Filter.ByExcluding(Matching.FromSource("System"))
               .Enrich.FromLogContext()
               .CreateLogger();

Таким образом, я могу контролировать то, что регистрируется.

...