Добавьте Specfi c Пространство имен в appsettings. json - Serilog ASP. NET Core 3.1 - PullRequest
0 голосов
/ 06 февраля 2020

Я следовал учебному пособию, в котором вы можете настроить все настройки Serilog в appsettings.json; тем не менее, я не могу заставить WebAppLogger.Startup выводить какие-либо сообщения:

{
  "AllowedHosts": "*",
  "Serilog": {
    "Using": [],
    "MinimumLevel": {
      "Default": "Warning",
      "WebAppLogger.Startup": "Verbose",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
    "WriteTo": [
      { 
        "Name": "Console",
        "Args": {
          "outputTemplate": "{Timestamp:G} {Level} {Message}{NewLine:1}{Exception}"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": "Logs/log.txt",
          "outputTemplate": "{Timestamp:G} {Level} {Message}{NewLine:1}"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": "Logs/log.json",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
        }
      }
    ]
  }
}

Я пытался добавить "Using": [{"WebAppLogger.Startup": "Verbose"}], но это приводит к сбою приложения.

В документах Serilog я ничего не нашел, связанных с использованием appsettings.json.

Кроме того, есть ли способ, которым я могу полностью подавить сообщения Microsoft и System?

1 Ответ

1 голос
/ 06 февраля 2020

В поле Using поля appsettings.json необходимо указать приемники, которые вы будете использовать.

Например, если вы пишете в Console, вы должны указать полное имя класса, включая пространство имен (в данном случае Serilog.Sinks.Console), при условии, что вы установили NuGet пакет раковины , конечно.

например:

{
  "Serilog": {
    "Using":  ["Serilog.Sinks.Console"], // <<<<<<<<<<##############
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" }
    ],
    "Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
  }
}

Примеры можно найти в репозитории GitHub:


Вы можете подавить Microsoft и System сообщения, используя Фильтры (например, ByExcluding, ByIncluding). В примере репозитория Serilog.Settings.Configuration приведен пример его настройки с помощью appsettings.json.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...