#spring-integration
#spring-интеграция
Вопрос:
Мой поток начинается с опрашивающего входящего адаптера, который передает обработку нижестоящим компонентам на каналах pub / sub с асинхронными исполнителями и активатором службы (оркестратор, использующий 2 шлюза)
Вопросы
1. Я хотел бы регистрировать идентификатор корреляции для каждого выполнения опроса, чтобы я мог отслеживать журналы для выполнения этого потока независимо от другого выполнения того же потока, используя этот идентификатор корреляции, что-то похожее на MDC с UUID. Как мне передать это всем потокам, участвующим в обработке, и вывести идентификатор корреляции в инструкции log?
2. Я также пытаюсь выяснить, какой наилучший подход для ведения журнала. В настоящее время у меня есть запись протоколирования (используемая адаптером протоколирования) на всех каналах. Для этого я хочу иметь возможность включать перехват прослушивания только тогда, когда режим ведения журнала ОТЛАДОЧНЫЙ, например,
<int:logging-channel-adapter log-full-message="true"
logger-name="tapInbound"
level="DEBUG"
id="loggingChannel"/>
Это будет регистрироваться только при отладке регистратора приложений, но перехват прослушивания будет происходить всегда. Как включить перехват прослушивания только при отладке уровня журнала? Возможно, с помощью selector-expression
значения чего-то вроде isloggingLevelDebug()
. Как мне это сделать?
Ответ №1:
-
Вы можете использовать рекомендации по опросу или пользовательский перехватчик на первом канале, чтобы установить корреляцию.
-
Вместо декларативного объявления проводных отводов в XML, вы могли бы программно добавить их к каналам в
SmartLifecycle
компоненте на ранней стадии (Integer.MIN_VALUE
).
Комментарии:
1. Как настроить MDC для асинхронной передачи? У меня есть различные асинхронные потоки, и я хотел бы иметь там MDC.
2. Не задавайте новых вопросов в комментариях; это не поможет людям найти вопросы / ответы.
MDC.copyContextMap()
— добавьте его в качестве заголовка сообщения и установите MDC из него в новом потоке,3. Конечно, я позабочусь об этом в следующий раз. Спасибо!