NLog:如何为不同的级别使用不同的布局?

NLog: How to use different layout for different levels?

我看到了这个老问题: How to apply different layouts to the same target in NLog?

答案是:针对不同的级别使用不同的目标。我不确定这是否会始终正常工作。

从那时起已经过去了很多时间。也许现在有更好的方法?

看起来没有其他方法可以对一个目标使用不同的布局。

使用自定义布局可能更好。

您可以创建有条件的自定义布局。它看起来像 CompoundLayout

例如

<layout type='ConditionalLayout'>
    <if condition="">
        <layout type='JsonLayout'> ...</layout>
    </if>
    <if condition="">
        <layout type='JsonLayout'> ...</layout>
    </if>

</layout>

CompoundLayout 的代码文件在这里:https://github.com/NLog/NLog/blob/dev/src/NLog/Layouts/CompoundLayout.cs