【发布时间】:2022-08-15 02:19:48
【问题描述】:
我正在尝试将 appsettings.json 属性访问到 NLog.Config 文件中。我正在使用 configsetting 布局渲染器在 nlog 中编写规则并从 appsettings 访问日志级别。 使用以下代码,它与普通属性(Microsoft)一起工作正常
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel.Microsoft}\" writeTo=\"logfile,Loggly\" />
对于名称中带有点的属性(Microsoft.Hosting.Lifetime),我无法读取该值
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel.Microsoft.Hosting.Lifetime}\" writeTo=\"logfile,Loggly\" />
Json 示例如下:
\"Logging\": {
\"LogLevel\": {
\"Default\": \"Error\",
\"Microsoft\": \"Information\",
\"Microsoft.Hosting.Lifetime\": \"Error\"
}
我在下面尝试过,但到目前为止没有任何效果
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel\'.Microsoft.Hosting.Lifetime\'}\" writeTo=\"logfile,Loggly\" />
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel.\'Microsoft.Hosting.Lifetime\'}\" writeTo=\"logfile,Loggly\" />
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel.Microsoft\\.Hosting\\.Lifetime}\" writeTo=\"logfile,Loggly\" />
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel.Microsoft/.Hosting/.Lifetime}\" writeTo=\"logfile,Loggly\" />
<logger name=\"Microsoft*\" minlevel=\"${configsetting:item=Logging.LogLevel\'.[Microsoft.Hosting.Lifetime]\'}\" writeTo=\"logfile,Loggly\" />
-
是的,现在
${configsetting}仅将dot识别为默认的节分隔符。欢迎您创建一个拉取请求来覆盖默认的节分隔符。或者添加对分隔符转义的支持。另见github.com/NLog/NLog.Extensions.Logging