【问题标题】:Access json property with dot in name into nlog.config file将带点的 json 属性访问到 xml 文件中
【发布时间】: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\" />

标签: c# json xml nlog


【解决方案1】:

NLog.Extensions.Logging v5.0.2 已经发布。您可以在哪里执行此操作:

${configsetting:item=Logging.LogLevel.Microsoft\\.Hosting\\.Lifetime}

或者你可以这样做:

${configsetting:item=Logging.LogLevel.Microsoft..Hosting..Lifetime}

另请参阅:https://www.nuget.org/packages/NLog.Extensions.Logging/5.0.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多