在NLog中过滤目标

时间:2014-11-20 15:34:25

标签: nlog

我有一个配置为多个目标的记录器。我可以在某些条件下过滤目标吗?

<logger name="actionsLogger" minlevel="Info" writeTo="fileTarget,rmqTarget1,rmqTarget2" />

我需要始终将操作写入fileTarget,在某些情况下还要写入rmqTarget1和rmqTarget2。也许解决方案是使用自己的目标创建多个记录器。但我无法更改项目的源代码并重新编译。

2 个答案:

答案 0 :(得分:2)

感谢您的回复。我找到了解决方案。 FilteringWrapper - https://github.com/NLog/NLog/wiki/FilteringWrapper-target。它为目标应用过滤器而不是过滤器。

<target
    xsi:type="FilteringWrapper"
    condition="'${event-context:item=Status}'=='Success'"
    name="rabbitMQFilteringTarget">
    <target
        xsi:type="RabbitMQ"
        name="rabbitMQTarget"
...
    </target>
</target>

答案 1 :(得分:0)

在NLog wiki上查看 Conditions

  

条件是与过滤时使用的过滤器表达式。它们由一个或多个测试组成。它们在 when 过滤器中用于确定是否将采取操作。