У меня есть веб-приложение на основе Struts 2 MVC. Мне пришлось настроить правильное ведение журнала в приложении, которое я уже сделал, и оно работает нормально.
Теперь я хочу, чтобы все исключения времени выполнения и ошибки из-за системного сбоя (например, потеря соединения с базой данных, любая сторонняя служба не работала и т. д. и т. д.) были зарегистрированы в моем файле журнала приложения.
Я прочитал о Thread.UncaughtExceptionHandler, а также просмотрел этот ответ, но по-прежнему не может приступить к выполнению этого требования.
Может ли кто-нибудь предложить мне, как начать с этим? Какие классы сделать? Что настроить? и т.д. и т.д. Также нужно сказать, что в моем приложении нет многопоточности.
Благодарю вас!
Ниже мой log4j.properties
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/backlogApp.log
log4j.appender.file.MaxFileSize=1000KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4p %m%n
log4j.appender.DatePattern='.'yyyy-MM-dd
# Root logger option
log4j.rootLogger=WARN, file
log4j.logger.com.nagarro=WARN
# OFF Hibernate and Spring
log4j.logger.org.hibernate=OFF
log4j.logger.org.springframework=OFF
# OFF all JDBC parameters
log4j.logger.org.hibernate.type=OFF
Кроме того, глобальный обработчик исключений в struts.xml
<global-results>
<result name="error">/jsp/errorpage.jsp</result>
<result name="sessionexpired">/jsp/login.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="error" />
<exception-mapping exception="javax.persistence.PersistenceException"
result="error" />
</global-exception-mappings>