簡體   English   中英

在 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 設置為 Error 並啟動我的應用程序,我可以在記錄器上看到 logDebug 被禁用。

如果我恢復回跟蹤,則所有級別都設置為 true (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>LoggerFactory在微軟擴展日志→ LogFactory在NLOG。

要配置 NLog,您應該更新 nlog.config 中的 NLog <rules> ,例如

(也可能來自代碼,請參閱文檔

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

請注意,如果最小級別在 NLog 中為“調試”並且在 appsettings.json 中為“錯誤”,則您將不會看到調試日志

注意 2:當直接使用 NLog 時,例如NLog.LogManager.GetCurrentClassLogger() ,您只需要配置 NLog 並且 appsettings.json 配置不用於這些日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM