Как применить разные макеты к одной и той же цели в NLog?

NLog позволяет мне использовать SplitGroup для регистрации моих сообщений для нескольких целей. Я хотел бы использовать эту функцию, чтобы регистрировать каждое сообщение в общем, пользовательские журналы и журналы по дате одновременно:







  
  
  

Это здорово, но я также хочу использовать разные макеты для разных уровней серьезности . Например, errorLayout будет включать информацию об исключении и вставить маркер [!] , чтобы позже я мог выделить ошибки в средствах просмотра журналов, таких как BareTail :




 






  
  
  
  

Этот код предполагает Ошибки всегда сопровождаются исключениями, а Предупреждение - нет, но суть не в этом.

Проблема в неправильная конфигурация . Это не сработает, потому что регистратор не имеет атрибута layout . Он определен только для цели .

Используемый макет должен быть объявлен самими целями, но я не вижу возможности указать разные макеты для разных уровней серьезности.

На данный момент мне пришлось скопировать-вставить один и тот же код конфигурации четыре раза, чтобы получить четыре другой макет для одного и того же набора файлов:


  
    
    
    
  

  
    
    
    
  

  
    
    
    
  

  
    
    
    
  



  
  
  
  

Это просто режет мне глаза.
Есть ли лучший способ сделать это и избежать дублирования?

7
задан Julian 18 February 2019 в 14:05
поделиться