2015-06-03 4 views
0

Мне нужно поддерживать уникальный идентификатор для каждого запроса, потому что мы записываем информацию и регистрируем журнал ошибок в другом файле. Чтобы отслеживать этот запрос1, мы получили эту ошибку и информацию сообщение. Я передаю Unicode как дополнительный параметр для каждого метода, это выглядит плохо. Любой альтернативный вариант, доступный весной для обработки этого материала.Как сохранить уникальный идентификатор для каждого запроса весной

образец трассировки Id:

инфо-file.log

uniqueId1 request1 

ошибок file.log

uniqueId1 error1 
uniqueId2 error2 

Для достижения этой цели мы пропусканием UniqueID в каждом методе контроллера, обслуживание и слой dao.

ответ

0

Если вы используете log4j, вы можете использовать это один раз в самом начале вашего контроллера/обслуживания

MDC.put("uniqueId", your id here); 

Затем в вашем log4j конфигурации, вы можете использовать% X {UniqueID} как это:

log4j.appender.default.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c [%X{uniqueId}] -> %m%n 

Когда вы закончите (в конце запроса) вы просто сделать:

MDC.remove("uniqueId"); 
+0

при использовании SLF4J это абстрактно, и вы басы без необходимости выбирать, какая из них будет регистрироваться. –

+0

@ wesker317 благодарит за предложение по MDC. Кроме того, я не знаю об этом, буду учиться и использовать его. мы используем SLF4j с конфигурацией logback.xml. – kumar

Смежные вопросы