Я работаю с Wildfly 10, и я использую его подсистему регистрации.Как я могу добавить имя пользователя (основной) к каждой строке журнала в Wildfly?
Теперь мне нужно добавить имя входа (login) пользователя, которое в настоящее время вошло в систему, из сеанса, в каждое сообщение журнала, которое обрабатывается подсистемой ведения журнала JBoss.
Есть ли общий способ сделать это, а не добавлять имя пользователя к каждому сообщению журнала в моем приложении?
Например я мог бы сделать:
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
UserModel user = (UserModel)request.getSession().getAttribute("user");
String username = user.getName();
Но как я могу получить Logging Subsystem, чтобы сделать это для каждого журнала сообщений?
Вы бы должны либо добавить пользователя или использовать что-то вроде 'MDC' (в зависимости от структуры каротажного). Сам журнал не имеет никаких знаний о пользователе. –
Thanx много для вашего ответа. Моя лучшая идея - создать модуль Wildfly, который реализует собственный обработчик журнала, который ссылается на текущий сеанс. Это возможно? Мне сложно определить, как построить и развернуть модуль кукуса. Я был бы признателен, если бы кто-то мог указать мне в правильном направлении. – Thomas
Это не сработает, поскольку ведение журнала не знает, что такое сеанс. Вы можете использовать прослушиватель сервлетов, который будет вставлять пользователя в MDC, а затем удалять его, когда запрос будет завершен. –