gpt4 book ai didi

java - 需要解决 Tomcat 在记录器被处理后尝试记录事件的 webapp 错误

转载 作者:行者123 更新时间:2023-11-28 23:08:22 26 4
gpt4 key购买 nike

环境:JSF 2.0、RichFaces 3.3.3、Facelets 1.1.15B1、Spring Framework 3.x、WebFlow 2.1、MyBatis 3.0.1、Oracle 10/11 g 后端、SLF4j 到 Log4j。好吧,这可能是 TMI,因为我的问题只是一个日志记录问题,但最好过于彻底。

无论如何...我刚刚设置了 SLF4j 和 log4j,所以现在所有内部 facelets 日志消息都被转储到 log4j 中,我实际上可以看到它们。此外,我将 Tomcat 设置为也转储到 log4j 而不是它的自定义版本的 JULI。这样做后,一切似乎都运行良好……直到我关闭该应用程序。

在关闭过程的中途,我的应用程序开始向左和向右吐出错误,因为(这是有道理的)Tomcat 试图在 spring 已经清理了记录器 bean 之后获取记录器实例。

有人知道吗?我想对于使用非标准日志记录机制的 Tomcat 的任何人来说,这一定是一个常见问题。解决这个问题的最佳方法是什么?

我想也许如果我只是提高日志级别,那么 Tomcat 甚至不会因为级别 req.s 而尝试记录消息,但是当 tomcat 试图检索记录器实例时会出现问题,因此它不起作用。

最佳答案

我会将 Logger 移到食物链的更高位置。

我个人从来没有配置 log4j 和 spring 依赖于它自己的配置机制(并寻找它到底在哪里找到它在过程中使用的属性文件)。

如果可以,您可以选择从 war 中完全删除 log4j,并依赖公共(public) tomcat 库类路径中的 log4j。当然,您会受到 tomcat 配置的支配,无法从应用程序内部访问日志,但它在应用程序的整个生命周期中始终存在。

关于java - 需要解决 Tomcat 在记录器被处理后尝试记录事件的 webapp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com