Регистрация исключений в Spring MVC с использованием Log4j2JAVA

Программисты JAVA общаются здесь
Anonymous
Регистрация исключений в Spring MVC с использованием Log4j2

Сообщение Anonymous »

Я пытаюсь настроить Spring и Log4j2 для регистрации исключений с трассировкой стека в файл. Проблема в том, что конфигурация по умолчанию записывает только одну строку, например:
2016-11-21 23:14:28 WARN MvcLogger:189 - Resolved exception caused by Handler execution: java.lang.Exception: some message

Эта строка печатается SimpleMappingExceptionResolver, созданным, как показано ниже:
@Bean
public SimpleMappingExceptionResolver createSimpleMappingExceptionResolver(){
SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();

Properties mappings = new Properties();
mappings.setProperty("Exception", "exception");

resolver.setExceptionMappings(mappings);
resolver.setDefaultErrorView("error");
resolver.setWarnLogCategory("example.MvcLogger");
return resolver;
}

Итак, я заглянул в исходный код AbstractHandlerExceptionResolver, который является суперклассом SimpleMappingExceptionResolver, и нашел следующее:
protected void logException(Exception ex, HttpServletRequest request) {
if (this.warnLogger != null && this.warnLogger.isWarnEnabled()) {
this.warnLogger.warn(buildLogMessage(ex, request));
}
}

и я понял, что он не может печатать трассировку стека при исключении. Чтобы решить эту проблему, я должен расширить SimpleMappingExceptionResolver и переопределить метод logException, но на самом деле не существует более простого метода для этого?
Вот мой файл log4j2.xml:



























Подробнее здесь: https://stackoverflow.com/questions/407 ... ing-log4j2

Вернуться в «JAVA»