AddNLog
регистрирует NLog, как и любой другой Microsoft Extension Logger (MEL) LoggingProvider (аналогично AddConsole
).
Это означает, что NLog получает только выходные данные журнала, которые были «одобрены» MEL- ILogger. Таким образом, любая фильтрация, настроенная в MEL, будет препятствовать тому, чтобы logevents достигал NLog.
NLog по-прежнему имеет возможность перенаправления на основе имен Logger и серьезности LogLevel на требуемые цели NLog.
Вы можете решите, хотите ли вы использовать MEL-фильтрацию или NLog-фильтрацию или их комбинацию. Но если вы просто хотите использовать «чистый» NLog, просто создайте экземпляр NLog.Extensions.Logging.NLogLoggerFactory
. Это специализированная фабрика ILogger, которая игнорирует MEL-Filtering-Configuration.
Кстати. немного странно, что вы создаете изолированную LoggerFactory для каждого экземпляра CommandsJob. Можно подумать, что вы зарегистрируете тип в инъекционной структуре зависимостей и позволите ему вводить параметры конструктора. См. Также этот пример:
https://github.com/NLog/NLog.Extensions.Logging/blob/master/examples/NetCore2/ConsoleExample/Program.cs
Где LoggerFactory создается с AddLogging(...)
и где Runner
зарегистрирован в ServiceCollection для внедрения зависимостей. При создании экземпляра Runner
внедрение-зависимости автоматически предоставит ILogger
в качестве параметра-конструктора.