MDC, чтобы различать ведение журнала между модулями

Мое программное обеспечение использует сервис-ориентированную архитектуру (SOA). Все службы (назовем их для простоты модулями) записываются в один файл журнала. Я хотел бы различать ведение журнала между модулями. Ниже показано, как я хотел бы, чтобы мое сообщение журнала выглядело.

[MODULE-1] INFO - This is a test log message from MODULE ONE
[MODULE-2] INFO - This is a test log message from MODULE TWO

Преимущество, которое я вижу в этом, заключается в том, что я мог бы получить необходимую информацию во время «хвоста» журналов. Кроме того, при анализе журналов я могу найти необходимую информацию по модулям. Это достижимо? Я использую log4j в качестве утилиты для ведения журнала. Обратите внимание, что каждый модуль может иметь несколько пакетов (иерархия пакетов). Самое близкое, с чем я столкнулся для достижения этого, - это использование MDC.


person TheMonkWhoSoldHisCode    schedule 08.07.2014    source источник


Ответы (1)


Мне удалось добиться этого с помощью MDC (MappedDiagnosticContext). К счастью, моя структура SOA позволила мне разместить контекстную информацию (имя службы/модуля) довольно общим образом. Ниже приведен код, который сделал это для меня.

MDC.put("MODULE", getServiceName())

Конечно, я смог получить информацию, используя тег -X в EnhancedPatternLayout.

person TheMonkWhoSoldHisCode    schedule 09.07.2014