更改appsettings.json中的日志级别不会应用于NLog

时间:2019-05-28 11:46:22

标签: c# .net-core nlog

我将NLog与dotnet核心应用程序配合使用,如此处所述。 https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2

在nlog.config中,如果我将minLevel设置为Error并启动我的应用,我可以在记录器上看到logDebug被禁用。

如果我恢复跟踪,则所有级别都设置为true (error, trace, debug, info, warning)

如果我将其放入配置文件(appsettings.json)

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

然后什么也没有发生,所有记录器级别仍设置为true,这可能是什么问题? enter image description here

1 个答案:

答案 0 :(得分:1)

如Snakefoot所述,

这是Microsoft Extension Logging的配置。

使用NLog +注入的.NET Core记录器(使用Microsoft Extension Logging)时,流程如下:

ILogger<MyClass> -> LoggerFactory in Microsoft Extension Logging -> LogFactory in NLog.

要配置NLog,您应该在nlog.config中更新NLog <rules>,例如

(也可以从代码中查看,请参见docs

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

请注意,如果最小级别是NLog中的“调试”和“错误”,则不会看到调试日志 appsettings.json

注释2: 当直接使用NLog时,例如NLog.LogManager.GetCurrentClassLogger(),您只需要配置NLog,而这些日志不使用appsettings.json配置。