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

标签 asp.net-core logging nlog

我们在 .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/

相关文章:

java - 开始记录 Tomcat 的最简单快捷的方法是什么?

mysql - 哪种类型的事件更适合存储在数据库中以供日志使用?

c# - 使用 NLog 作为翻转文件记录器

.net - JwtBearerMiddleware 的自定义 token 位置

Tomcat - 标准输出文件非常大

visual-studio - 如何修复 Visual Studio 2015 中引用的 netstandard1.5 库项目的智能感知?

c# - 在 ASP.NET Core 应用程序中使用 NLog

c# - .NET Core 中的 NLog 事件属性

asp.net-core - EF核心2 : Database first with many-to-many (linking table)

asp.net-core - 如何在asp.net core MVC RC2中检索facebook用户个人资料图片