Я пытаюсь использовать новый RoutingAppender Log4j2 для маршрутизации различных журналов на основе MDC (ThreadContext в Log4j2). То, что я хочу сделать, это следующее:Подстановочный шаблон для RoutingAppender Log4j2
- Если MDC карта имеет $ ContextID -> Append до $ ContextID Appender (конкретный журнал)
- Если MDC не $ ContextID -> Добавить к основному Appender (общая журнал)
Я хочу, чтобы достичь этого, используя шаблон подстановки в теге, а затем фильтруют, используя ключевой параметр в течение ContextID ($ {CTX: ContextID}) и использование по умолчанию (без ключа paramenter) для основной appender, однако я не знаю, какое значение является шаблоном.
Любая помощь приветствуется, возможно, я приближаюсь к этому с неправильного пути. Я читал об фильтрах, но, похоже, не работает так, как хочу.
Спасибо!
Я нашел решение, так что вам не нужно использовать фильтр в соединении с переключением ключа ThreadContext из заполненного в пустым), используя два маршрута. Как этот пример объясняет http://logging.apache.org/log4j/2.x/faq.html#separate_log_files Вы можете использовать атрибут ключа на маршруте для создания маршрута, который выбран, если ThreadContext не имеет значения для ключ. Затем я использую этот маршрут для ссылки на мой основной файл. Если вы настроили этот второй «маршрут», вам совсем не обязательно использовать ThreadContextMapFilter. Кроме того, вам понадобится только один appender-ref в корневом журнале. – Alex