добавление конкретного имени потока в log4j2 при использовании мула

Я настраиваю приложение SMTP с log4j2 для использования в муле, и я хотел бы включить в электронное письмо имя потока, из которого возникла ошибка.

Это возможно?


person a.cayzer    schedule 19.07.2016    source источник


Ответы (2)


Я считаю, что макет по умолчанию для SMTP Appender — это HTML-макет. Этот макет имеет атрибут title. Вы можете попробовать внедрить поиск карты ThreadContext в атрибуте title. Например, title="$${ctx:flow}".

В PatternLayout вы можете добиться того же, встроив %X{flow} в шаблон.

В вашем коде Java вы должны вызвать ThreadContext.put("flow", "someValue");, и все последующие журналы в этом потоке будут иметь это значение для «потока».

person Remko Popma    schedule 19.07.2016
comment
мы используем макет шаблона для приложения smtp, и у нас нет кода Java, у нас есть потоки мулов и log4j2.xml - person a.cayzer; 19.07.2016
comment
Обновлено для PatternLayout. Не знаю, как работает Mule, но что-то нужно для установки пары ключ-значение в ThreadContext. Не позволит ли Mule запускать пользовательскую логику? - person Remko Popma; 19.07.2016

Выражение MEL #[flow.name] даст вам имя текущего потока. Это можно использовать напрямую или в шаблоне синтаксического анализа для создания тела сообщения.

person dlb    schedule 19.07.2016