如何将 NLog 目标与 Microsoft ILogger 过滤器结合使用?
How to combine NLog Targets with Microsoft ILogger filters?
我们在 .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 中使用它(并依赖来自 appsettings.json 的 Microsoft LoggerFactory 过滤):
<rules>
<logger name="*" writeTo="NLogTarget"/>
</rules>
升级到NLog 5.0时注意,然后记得在AddNLog
或UseNLog
上配置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
我们在 .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 中使用它(并依赖来自 appsettings.json 的 Microsoft LoggerFactory 过滤):
<rules>
<logger name="*" writeTo="NLogTarget"/>
</rules>
升级到NLog 5.0时注意,然后记得在AddNLog
或UseNLog
上配置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