Как включить статическую информацию в логирование с Log4j или аналогичным? - PullRequest
2 голосов
/ 08 августа 2011

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

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

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

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

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

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

0 голосов
/ 08 августа 2011

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

...