我有一个 Asp.NET Core 应用程序,它使用第三方库,输出具有 INFO 信息级别的消息:
_logger.LogInformation("About information...");
这是关于如何配置日志显示的(我使用的是JSON配置):
{
"NLog": {
"targets": {
"console": {
"type": "Console",
"layout": "${logger}|${date}|${level:uppercase=true}|${message}"
}
}
}
}
ThirdPartyNamespace.Runner|2024/11/12 12:24:27.141|INFO|About information...
在日志记录级别的日志中,我逻辑检查INFO。是否可以在不将代码从 INFO 更改为 DEBUG 的情况下重新定义特定记录器的日志记录级别?
这条规则不起作用(我得到一个例外:
Unhandled exception. NLog.NLogConfigurationException: 'ConditionBasedFilter' cannot assign unknown property 'level'='Debug'
)。也许有正确的工作方式?
{
"rules": [
{
"logger": "ThirdPartyNamespace.Runner",
"minLevel": "Debug",
"writeTo": "Console",
"filters": [
{
"type": "when",
"condition": "level == LogLevel.Info",
"action": "Log",
"level": "Debug"
}
]
}
]
}
您可以通过指定 minLevel 和 maxLevel 属性直接在 NLog 配置 (NLog.config) 中设置特定记录器的日志级别。
以下是仅为特定记录器设置 DEBUG 级别的示例:
<rules>
<!-- Default rule for all loggers -->
<logger name="*" minLevel="Info" writeTo="logfile" />
<!-- Specific rule for the desired logger with DEBUG level -->
<logger name="YourSpecificLoggerName" minLevel="Debug" writeTo="logfile" />
</rules>