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 表达式检查为布尔值。