NLog配置不读取布尔属性

时间:2018-05-22 13:47:27

标签: logging nlog nlog-configuration

我有以下NLog过滤器(记录器输出到DB):

<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"/>

然后使用字符串Property:

调用NLog
Log.Error().Message("test").Property("LogToDatabase", false.ToString()).Write();

有没有办法在配置中进行布尔检查?

1 个答案:

答案 0 :(得分:1)

NLog中的布局渲染器仅渲染为文本。 您可以在此处查看事件属性的代码:https://github.com/NLog/NLog/blob/e0650c42b4ab3660abc60717e50535d20763289c/src/NLog/LayoutRenderers/EventPropertiesLayoutRenderer.cs

所以你不能将NLog表达式检查为bool。