在 appsettings.json 中更改日志级别不会应用于 NLog
Changing loglevel in appsettings.json won't get applied to NLog
我将 NLog 与 dotnet 核心应用程序一起使用,配置如下所述。 https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
在 nlog.config 中,如果我将 minLevel 设置为错误并启动我的应用程序,我可以在记录器上看到 logDebug 被禁用。
如果我还原回跟踪,则所有级别都设置为真(error, trace, debug, info, warning)
如果我将其放入配置文件 (appsettings.json)
"Logging": {
"LogLevel": {
"Default": "Error",
"Microsoft": "Information"
}
}
然后什么也没有发生,所有记录器级别仍然设置为 true,可能是哪里出了问题?
正如 Snakefoot 提到的,
这是 Microsoft Extension Logging 的配置。
使用NLog + Injected .NET Core loggers(使用Microsoft Extension Logging)时,流程如下:
ILogger<MyClass>
→ Microsoft 扩展日志记录中的 LoggerFactory
→ NLog 中的 LogFactory
。
要配置 NLog,您应该更新 nlog.config 中的 NLog <rules>
,例如
(也可能来自代码,参见 docs)
<rules>
<logger name="*" minlevel="debug" />
</rules>
请注意,如果 NLog 中的最小级别为“调试”和“错误”,您将看不到调试日志
appsettings.json
注2:
直接使用 NLog 时,例如NLog.LogManager.GetCurrentClassLogger()
,您只需要配置 NLog,appsettings.json 配置不用于这些日志。
我将 NLog 与 dotnet 核心应用程序一起使用,配置如下所述。 https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
在 nlog.config 中,如果我将 minLevel 设置为错误并启动我的应用程序,我可以在记录器上看到 logDebug 被禁用。
如果我还原回跟踪,则所有级别都设置为真(error, trace, debug, info, warning)
如果我将其放入配置文件 (appsettings.json)
"Logging": {
"LogLevel": {
"Default": "Error",
"Microsoft": "Information"
}
}
然后什么也没有发生,所有记录器级别仍然设置为 true,可能是哪里出了问题?
正如 Snakefoot 提到的,
这是 Microsoft Extension Logging 的配置。
使用NLog + Injected .NET Core loggers(使用Microsoft Extension Logging)时,流程如下:
ILogger<MyClass>
→ Microsoft 扩展日志记录中的 LoggerFactory
→ NLog 中的 LogFactory
。
要配置 NLog,您应该更新 nlog.config 中的 NLog <rules>
,例如
(也可能来自代码,参见 docs)
<rules>
<logger name="*" minlevel="debug" />
</rules>
请注意,如果 NLog 中的最小级别为“调试”和“错误”,您将看不到调试日志 appsettings.json
注2:
直接使用 NLog 时,例如NLog.LogManager.GetCurrentClassLogger()
,您只需要配置 NLog,appsettings.json 配置不用于这些日志。