nlog 记录器和过滤器

nlog logger and filters

我想应用过滤器来阻止通过电子邮件发送的某些错误,但仍将它们记录到文件中

f 是文件目标,m 是邮件目标,在我应用此过滤器之前两者都工作正常:

<rules>
  <logger name="*" minlevel="Error" writeTo="f" /> 
  <logger name="*" minlevel="Error" writeTo="m" >
    <filters>
      <when condition="contains(${message}, 'Some message exception text')" action="Ignore" />
    </filters>
  </logger>
</rules>

如果抛出包含 'Some message exception text' 的错误,我希望条目仍会出现在文件日志中,但事实并非如此。我没有收到电子邮件,这正是我想要的,但文件中没有任何记录。

我是否错误地设置了过滤器,或者这是 nlog 的预期行为?

试试这个:您忘记为 ${message} 使用“'”=> '${message}'

<filters>
        <when condition="contains('${message}', 'Some message exception text' )" action="Ignore"/>
</filters>