2016-11-28 2 views
0

Я работаю с Wildfly 10, и я использую его подсистему регистрации.Как я могу добавить имя пользователя (основной) к каждой строке журнала в Wildfly?

Теперь мне нужно добавить имя входа (login) пользователя, которое в настоящее время вошло в систему, из сеанса, в каждое сообщение журнала, которое обрабатывается подсистемой ведения журнала JBoss.

Есть ли общий способ сделать это, а не добавлять имя пользователя к каждому сообщению журнала в моем приложении?

Например я мог бы сделать:

 HttpServletRequest request = (HttpServletRequest)externalContext.getRequest(); 
     UserModel user = (UserModel)request.getSession().getAttribute("user"); 
     String username = user.getName(); 

Но как я могу получить Logging Subsystem, чтобы сделать это для каждого журнала сообщений?

+1

Вы бы должны либо добавить пользователя или использовать что-то вроде 'MDC' (в зависимости от структуры каротажного). Сам журнал не имеет никаких знаний о пользователе. –

+0

Thanx много для вашего ответа. Моя лучшая идея - создать модуль Wildfly, который реализует собственный обработчик журнала, который ссылается на текущий сеанс. Это возможно? Мне сложно определить, как построить и развернуть модуль кукуса. Я был бы признателен, если бы кто-то мог указать мне в правильном направлении. – Thomas

+1

Это не сработает, поскольку ведение журнала не знает, что такое сеанс. Вы можете использовать прослушиватель сервлетов, который будет вставлять пользователя в MDC, а затем удалять его, когда запрос будет завершен. –

ответ

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