ASP.NET Пользовательский фильтр LoggingProvider Core 2.0 в appsettings.json

#c# #asp.net

#c# #asp.net

Вопрос:

В asp.net ядро можно зарегистрировать разных поставщиков ведения журнала:

 services.AddLogging(builder => builder
            .AddConsole()
            .AddDebug();
  

Затем настройте внутри appsettings.json:

 {
    "Logging": {
        "IncludeScopes": false,
        "Console": {
            "LogLevel": {
                "Default": "Warning"
             }
         }
     }
 }
  

Но как мне настроить уровень журнала для пользовательского поставщика ведения журнала:

 builder.Services.AddSingleton<ILoggerProvider,MyLoggerProvider>
  

Что следует добавить в appsettings.json и что следует сделать в коде? Я предполагаю что-то вроде:

 {
    "Logging": {
        "IncludeScopes": false,
        "Console": {
            "LogLevel": {
                "Default": "Warning"
             }
         }
         "?":{
             "LogLevel": {
                "Default": "Debug"
             } 
         }
     }
 }
  

Но что входит в «?», если это действительно правильный подход?

Ответ №1:

Вы можете использовать атрибут ProviderAlias в своем классе CustomLoggerProvider и добавить этот псевдоним в файл appsettings.json.

 [ProviderAlias("MyLogger")]
  public class MyLoggerProvider



  "MyLogger":{
         "LogLevel": {
            "Default": "Debug"
         } 
     }
  

Комментарии:

1. Спасибо, выглядит неплохо. У меня не было возможности опробовать это, но я сделаю это, когда у меня будет время.