2015-09-22 4 views
2

В моем приложении я использую предварительно определенное сообщение в журнале, что-то вроде этого:Как разобрать сообщение для log4j2 JDBC Appender

MESSAGE_ID PROCESS_ID This process is running

Я хотел бы использовать JDBC Appender и разделить мое сообщение три, чтобы поместить каждую часть в конкретный столбец SQL.

Возможно ли это? И как?

Большое спасибо!

+0

Не могли бы вы показать мне выходное сообщение? –

+0

LAU0005I \t [0a2b0fa5-4809-4888-b81f-8ca3704aebc5] Тип de flux récupéré ExempleStream – Eric

+0

Я не совсем уверен, какая часть сообщения есть то, что. Кажется, что LAU0005I MESSAGE_ID, строка в [] представляется идентификатором процесса. Последняя часть означает «этот процесс запущен». Поправьте меня если я ошибаюсь. –

ответ

1

Одна идея состоит в том, чтобы использовать ThreadContext нести идентификатор сообщения и идентификатор процесса, и declare jdbc columns для каждого элемента, как это:

<Column name="MESSAGE" pattern="%message" /> 
<Column name="MESSAGE_ID" pattern="%X{messageID}" /> 
<Column name="PROCESS_ID" pattern="%X{processID}" /> 

В своем коде вы установите значения, как это:

ThreadContext.put("messageID", UUID.randomUUID().toString(); 
ThreadContext.put("processID", getProcessId()); 
... 
logger.debug("this process is running"); 
... 
+0

Удивительно, это именно то, что я искал! Большое спасибо! – Eric

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