Как включить статическую информацию в логирование с Log4j или аналогичным?

У нас есть приложение, в котором сообщение журнала без контекста, в котором оно было запущено (т. Е. Базы данных), почти никогда не имеет смысла. Информация всегда доступна, но включать ее вручную везде довольно сложно. Есть ли более элегантный способ сделать это?

Я размышлял о том, как реализовать оболочку для ведения журнала, которая всегда включает информацию. Я пробовал это, но я хотел бы, чтобы LogFactory (или slf4j или Log4j) выбрал этот класс по умолчанию, и я не знаю, как это сделать...

Какие-либо предложения?

2 ответа

Решение

Вы могли бы взглянуть на NDC или же MDC классы. Вы можете поместить контекстную информацию в стек и автоматически включить ее в свои сообщения журнала.

Вы можете найти небольшой пример здесь.

В вашем PatternLayout использовать '%x' войти NDC информация и '%X' за MDC,

Для log4j создайте класс, расширяющийся от PatternLayout, чтобы создать свой собственный макет.

Другие вопросы по тегам