我有以下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:
调用NLogLog.Error().Message("test").Property("LogToDatabase", false.ToString()).Write();
有没有办法在配置中进行布尔检查?
答案 0 :(得分:1)
NLog中的布局渲染器仅渲染为文本。 您可以在此处查看事件属性的代码:https://github.com/NLog/NLog/blob/e0650c42b4ab3660abc60717e50535d20763289c/src/NLog/LayoutRenderers/EventPropertiesLayoutRenderer.cs
所以你不能将NLog表达式检查为bool。