使用 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 ×1