Изменение уровня журнала в appsettings.json не будет применено к NLog

Я использую NLog с основным приложением dotnet, настроенным, как описано здесь. https://github.com/NLog/NLog.Web/wiki/Начало работы с ASP.NET-Core-2

В nlog.config, если я установлю для minLevel значение Error и запущу свое приложение, я увижу в регистраторе, что logDebug отключен.

Если я вернусь к трассировке, все уровни будут установлены на true (error, trace, debug, info, warning)

и если я помещу это в файл конфигурации (appsettings.json)

"Logging": {
        "LogLevel": {
            "Default": "Error",
            "Microsoft": "Information"
        }
    }

тогда ничего не происходит, все уровни регистратора по-прежнему установлены на true, что может быть не так? Изменение уровня журнала в appsettings.json не будет применено к NLog

Вы показываете сведения об отладке для чистого объекта NLog Logger, но вы настроили LoggerFactory Microsoft Extension Logging (MEL). NLog не знает о настройке MEL-фильтров. MEL-ILogger выполнит фильтрацию в соответствии с MEL-конфигурацией (и перенаправит NLog-провайдеру, если он добавлен). NLog-Logger выполнит фильтрацию в соответствии с NLog-config.

Rolf Kristensen 28.05.2019 20:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
1
2 579
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упомянул Снейкфут,

это конфигурация ведения журнала расширений Microsoft.

При использовании регистраторов NLog + Injected .NET Core (с использованием Microsoft Extension Logging) процесс выглядит следующим образом:

ILogger<MyClass>LoggerFactory в журнале расширений Microsoft → LogFactory в NLog.

Чтобы настроить NLog, вы должны обновить NLog <rules> в вашем nlog.config, например.

(также возможно из кода, см. документы)

<rules>
   <logger name = "*" minlevel = "debug" />
</rules>

Обратите внимание, что вы не увидите журналы отладки, если минимальный уровень «отладка» в NLog и «ошибка» appsettings.json

заметка 2: При использовании NLog direct, например. NLog.LogManager.GetCurrentClassLogger() вам нужно только настроить NLog, и конфигурация appsettings.json не используется для этих журналов.

Извините, мне непонятно: NLog использует Microsoft.Extension.Logging, а Microsoft.Extension.Logging считывает уровни журнала из appsettings.json, верно? поэтому разве appsettings.json не должен быть местом, где вы настраиваете уровень журнала? Это явно не работает, но я не понимаю, почему.

gyozo kudor 04.03.2020 17:47

@gyozokudor Может быть, проверить этот пример? github.com/NLog/NLog.Web/tree/dev/examples/ASP.NET%20Core%20‌​3/…

Julian 05.03.2020 01:00

Ссылка на гитхабе уже не работает. Используйте этот — github.com/NLog/NLog.Web/tree/master/examples/…

user216652 27.09.2020 23:07

Другие вопросы по теме