gpt4 book ai didi

asp.net-core - 如何将 NLog 目标与 Microsoft ILogger 过滤器结合使用?

转载 作者:行者123 更新时间:2023-12-05 01:05:48 29 4
gpt4 key购买 nike

我们在 .net 5.0 Web API 中使用 NLog,感觉日志级别设置在多个位置。有没有办法我们可以配置 nLog 以使用应用设置并忽略 nLog.config 日志级别?

nlog.config:

<rules>
<logger name="*" levels="Trace,Debug,Info,Warn,Error,Fatal" writeTo="NLogTarget"/>
</rules>

AppSettings.json:

"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Debug"
}
}

提前致谢。

最佳答案

如果只使用 Microsoft ILogger,那么您可以在 NLog 中使用它(并依赖 Microsoft LoggerFactory 从 appsettings.json 过滤):

<rules>
<logger name="*" writeTo="NLogTarget"/>
</rules>

升级到 NLog 5.0 时注意,然后记得在 AddNLogUseNLog 上配置 NLogProviderOptions.RemoveLoggerFactoryFilter = false (使用最新的 NLog 然后设置已经存在,因此您现在可以预先设置)。

大多数用户对拥有 2 个日志过滤系统感到困惑,并期望在使用 NLog 时应用的是 NLog 过滤器。因此将其更改为默认忽略 Microsoft LoggerFactory 过滤器。

请注意,您还可以在 appsettings.json 中拥有 NLog 配置。另见 https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-configuration-with-appsettings.json

关于asp.net-core - 如何将 NLog 目标与 Microsoft ILogger 过滤器结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70307911/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com