相关疑难解决方法(0)

有没有办法通过变量设置 NLog 记录器的最小级别?

使用 NLog v4.4.12,我的 App.config 中有这个

<nlog>
    <include file="..\Common\Logs\Variables.xml" />
    <rules>
        <logger name="*" minlevel="${logLevel}" writeTo="LogFile, Wcf"/>
    </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

这是我的 Variables.xml 文件内容

<?xml version="1.0" encoding="utf-8"?>
<nlog autoReload="true">
  <variable name="logLevel" value="Fatal" />
</nlog>
Run Code Online (Sandbox Code Playgroud)

但启动我的应用程序时出现异常

Unknown log level: ${logLevel}
Run Code Online (Sandbox Code Playgroud)

我做错了什么还是根本不可能?

这样做的目标是最终为每个项目提供一个需要记录内容的 xml 文件,以便每个项目都可以拥有自己的最小级别,并能够在运行时通过此 xml 的版本进行更改。

编辑:在引发异常之前添加此代码表明我的变量具有所需的值。

var nl = NLog.LogManager.Configuration;
if (nl != null)
{
    if (nl.Variables.ContainsKey("logLevel"))
    {
            Console.WriteLine(nl.Variables["logLevel"]);
    }
}
Run Code Online (Sandbox Code Playgroud)

nlog

4
推荐指数
1
解决办法
3656
查看次数

标签 统计

nlog ×1