【问题标题】:Spring ExceptionHandler Logging Not WorkingSpring ExceptionHandler 日志记录不起作用
【发布时间】:2016-06-29 13:49:41
【问题描述】:

我创建了使用 @ControllerAdivce 注释的 ExcpetionHandler 类,使用 Eclipse Tomcat 服务器可以正常工作。

当我构建项目并将其部署到某些 unix 机器上的 tomcat 时,异常处理程序没有被触发。

我注意到一些 log4j 警告仅在 unix 机器上生成。

log4j xml 已配置,所有附加程序都在工作。

只有在添加了以下类后,我才开始收到以下 log4j 消息。

有什么想法吗?

@ControllerAdvice
public class ExceptionController {

    @ExceptionHandler(RuntimeException.class)
    public ResponseEntity<ClientErrorMessage> handleRunTimeException(HttpServletRequest request, RuntimeException exception) {
       ClientErrorMessage message = SOME_MESSAGE
       return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR);
    }

}

log4j:WARN 找不到记录器的附加程序(org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver)。 log4j:WARN 请正确初始化 log4j 系统。 log4j:WARN 请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 了解更多信息。

【问题讨论】:

  • 看起来 log4j.XML 不在应用程序的类路径中
  • 它是,如果不是所有其他附加程序都不能正常工作,但它们正在工作。
  • 文件在哪里,内容是什么?
  • 我通过提供 JAVA_OPTS -Dlog4j.configuration 来提供路径。我可能会发现问题,将对其进行测试并更新。我想我需要为 org.springframework.web 包添加附加程序。目前我没有这个附加程序。
  • 是的,问题是缺少 spring web 包的附加程序。感谢您的帮助

标签: java spring tomcat log4j exceptionhandler


【解决方案1】:

您可以查看以下链接以了解您的问题。看来您在配置 log4j 之前正在使用 logger 实例

No appenders could be found for logger(log4j)?

【讨论】:

    【解决方案2】:

    问题是 spring 包缺少 log4j 附加程序。

    <logger name="org.springframework.web">
      <level value="debug"/>
      <appender-ref ref="CONSOLE"/>
    </logger>
    

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2018-08-24
      • 2011-12-27
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      相关资源
      最近更新 更多