2016-08-22 3 views
0

Я знаю, вопрос выглядит немного запутанным. Позвольте мне объяснить это подробно.Есть ли способ показать данные пользователя в журнале log4j?

У меня есть некоторые данные, которые я хочу показать каждый раз в Logger вместе с сообщением пользователя.

Ex. log4j.appender.filer.layout.ConversionPattern=%-5p %d{yyyyddMM-HH:mm:ss} %m%n
консоли: WARN 20162208-18: 34: 35 Тест Информация

Это скороговорка я установил в log4j.properties файл, который работает абсолютно нормально.

Теперь проблема возникает, когда я хочу добавить некоторые пользовательские данные в этот шаблон. Эти данные пользователя будут иметь некоторое значение, которое будет извлекаться из пользовательского ввода. После того, как данные пользователя, консоль должна выглядеть некоторые вещи, как это:
консоль: WARN user_data 20162208-18: 34: 35 Тесты Информация

Так что мой вопрос, можем ли мы установить/отправить пользовательские данные в регистратор шаблоне ?

Я видел несколько примеров, когда пользователь расширял класс Appender и переопределял метод append(). Но я ищу другой подход.

+0

Вы хотите, чтобы * пользовательские данные * в каждом журнале? –

+0

@TAsk Да! Правильно .. –

ответ

1

Чтобы динамически разместить контекстные данные в записи регистратора, используйте функцию MDC в Log4j.

Вот пример:

// JAVA CODE 
org.apache.log4j.MDC.put("User_data", "this is my user data"); 

// Log4j Pattern 
%X{User_data} 
+0

Спасибо за предложение !! Но не удастся сохранить данные в переменных среды, поскольку данные извлекаются из пользовательского ввода, который пользователь будет предоставлять во время выполнения. –

+0

Я изменил свой ответ для отображения динамических данных в записи регистратора. – eighthrazz

+0

Спасибо тонну !!! Вы сделали мой день!!! –

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