Конфигурация NLog не читает логическое свойство - PullRequest
0 голосов
/ 22 мая 2018

У меня есть следующий фильтр 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();

Есть ли способ сделать логическую проверку в конфиге?

1 Ответ

0 голосов
/ 22 мая 2018

Визуализаторы макетов в NLog отображаются только как текст .Вы можете увидеть код свойств события здесь: https://github.com/NLog/NLog/blob/e0650c42b4ab3660abc60717e50535d20763289c/src/NLog/LayoutRenderers/EventPropertiesLayoutRenderer.cs

Так что вы не можете проверить выражения NLog как bool.

...