Log4J вопрос новичка - PullRequest
       7

Log4J вопрос новичка

0 голосов
/ 29 мая 2010

Я сконфигурировал log4j для базовых целей, используя шаблон преобразования: -

log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n

Но теперь я хочу записать имя класса, из которого произошла ошибка, а также имя пользователя (доступно в объекте сеанса), а также дату и время, когда это событие произошло. Как мне это сделать? Какие изменения мне нужно внести в строку формата?

Заранее спасибо:)

Ответы [ 2 ]

1 голос
/ 29 мая 2010

Чтобы получить имя класса, вы можете использовать% l, но вам придется немного снизить производительность. Чтобы получить имя пользователя, вам нужно использовать сопоставленный или вложенный диагностический контекст , а затем указать% X или% x соответственно в строке шаблона.

Проверьте PatternLayout javdocs.

1 голос
/ 29 мая 2010

Посмотрите на документы PatternLayout для большинства того, что вы хотите.

Головная боль, с которой вы сталкиваетесь, заключается в получении имени пользователя из сеанса (Log4j не может сделать это автоматически). Возможно, я бы исследовал NDC или MDC и заполнил их из сеанса (возможно, в фильтре сервлетов?). Они равны на поток , поэтому, если у вашего пользователя такая же область действия, это может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...