我想在NLog中使用Layouts来使用外部变量更改最小日志级别:
EditText
启动NLog后,所有日志级别(例如:Tracing,Debug,Info,...)都设置为<nlog>
<variable name="loglevel" value="Debug"/>
<targets>
<target ... />
</targets>
<rules>
<logger name="*" minlevel="${loglevel}" writeTo="LogFile" />
</rules>
</nlog>
,表示NLog无法正确解析false
属性。
NLog布局功能似乎仅适用于minlevel
属性。
我想要实现的目标:在我的真实应用中,loglevel不是常量,而是自定义layout renderer。
我还尝试将target
替换为value="Debug"
但没有成功。
答案 0 :(得分:0)
minlevel
上的maxlevel
,level
和<logger>
属性应为固定字符串。
在这种情况下,您可以使用<filter>
,例如
<nlog>
<variable name="loglevel" value="Debug"/>
<targets>
<target ... />
</targets>
<rules>
<logger name="*" writeTo="LogFile" >
<filter condition="${level} >= ${loglevel}" action="Log">
</logger>
</rules>
</nlog>
请参阅docs