Каков наилучший способ группировки сообщений журнала в приложении MVC - PullRequest
0 голосов
/ 16 октября 2018

Я хочу добавить систему регистрации в наше весеннее приложение MVC с минимальным рефакторингом.Я хочу сгруппировать сообщения по запросу и прикрепить к нему немного id.Один из подходов, о которых я подумал, заключается в создании некоторого объекта логгера с id в контроллере и переходе на сервисные уровни DAO.Все слои продолжают добавлять сообщения в этот объект логгера.Наконец, я печатаю их в конце обработки запроса.Есть ли в Spring или log4j фреймворки лучший способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Spring Security имеет функцию автоматического добавления SessionId в регистратор. Отметьте этот флажок

Публикуйте тот же ответ здесь:

RequestContextHolder.currentRequestAttributes().getSessionId();

Это зависит от SpringConnectxtHolder, поэтому его следует использовать с DispatcherServlet Spring MVC, или вы должны иметьRequestContextListener объявлен.Также сеанс будет создан, если не существует.

0 голосов
/ 16 октября 2018

Spring имеет область действия Request, поэтому вы можете создать объект идентификатора в области запроса, сгенерированный при получении запроса.Затем вы можете внедрить этот объект в классы, которые вам нужны для регистрации с регулярным внедрением зависимостей, так что вам не нужно ничего передавать.

@Bean
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public RequestId requestScopedBean() {
    return new RequestId();
}    

Что касается журнала, то обычная практика состоит в инициализацииЖурнал на класс.Тогда у вас будет все элементы, которые вам нужны в каждом классе.

private static final Logger logger = Logger.getLogger(YourClass.java)

Надеюсь, это поможет!

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