NLog 配置未读取布尔值 属性
NLog config not reading boolean Property
我有以下 NLog 过滤器(记录器输出到数据库):
<logger name="*" minlevel="Error" writeTo="Database" >
<filters>
<when condition="${event-properties:item=LogToDatabase} == false" action="Ignore"/>
</filters>
</logger>
这就是我调用 NLog 的方式:
Log.Error().Message("test").Property("LogToDatabase", false).Write();
配置似乎无法使用 bool 值,但我设法使其工作的唯一方法是在配置中使用字符串,如下所示:
<when condition="'${event-properties:item=LogToDatabase}' == 'False'" action="Ignore"/>
然后用字符串调用NLog 属性:
Log.Error().Message("test").Property("LogToDatabase", false.ToString()).Write();
有没有办法在配置中进行布尔检查?
NLog 中的布局渲染器仅渲染为 文本。
您可以在此处查看事件属性的代码:https://github.com/NLog/NLog/blob/e0650c42b4ab3660abc60717e50535d20763289c/src/NLog/LayoutRenderers/EventPropertiesLayoutRenderer.cs
因此您不能将 NLog 表达式检查为布尔值。
我有以下 NLog 过滤器(记录器输出到数据库):
<logger name="*" minlevel="Error" writeTo="Database" >
<filters>
<when condition="${event-properties:item=LogToDatabase} == false" action="Ignore"/>
</filters>
</logger>
这就是我调用 NLog 的方式:
Log.Error().Message("test").Property("LogToDatabase", false).Write();
配置似乎无法使用 bool 值,但我设法使其工作的唯一方法是在配置中使用字符串,如下所示:
<when condition="'${event-properties:item=LogToDatabase}' == 'False'" action="Ignore"/>
然后用字符串调用NLog 属性:
Log.Error().Message("test").Property("LogToDatabase", false.ToString()).Write();
有没有办法在配置中进行布尔检查?
NLog 中的布局渲染器仅渲染为 文本。 您可以在此处查看事件属性的代码:https://github.com/NLog/NLog/blob/e0650c42b4ab3660abc60717e50535d20763289c/src/NLog/LayoutRenderers/EventPropertiesLayoutRenderer.cs
因此您不能将 NLog 表达式检查为布尔值。