Я видел этот старый вопрос: Как применить разные макеты к одной и той же цели в 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
CompoundLayout
Похоже, нет других способов использовать разные макеты с одной целью.
И, возможно, лучше просто использовать пользовательский макет.