我已经将网络应用程序部署到 Tomcat 7
服务器。我的应用程序使用 log4j
和一个 file appender
。但是,并不是所有的日志消息都被写入文件。
在我的类路径中,我有:
log4j-1.2.14.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
我的 log4j.properties
文件在我的本地机器上工作正常并且部署正确。
我看到应用程序生成的错误消息被写入 catalina.out
,但没有写入我的 log4j 日志
。 catalina.out
中的日志消息看起来来自其他一些日志记录框架,因为输出模式的格式与我的 log4j
模式不同。我在 catalina.log
中看到的日志记录如下:
Nov 4, 2011 11:05:31 AM org.apache.myfaces.shared_impl.util.StateUtils reconstruct
SEVERE
我的 log4j 模式是这样的:
2011-11-03 16:42:09,336 ["http-bio-8080"-exec-13] ERROR
一些日志记录出现在我的 log4j
文件日志中,但不是全部。根据我的阅读,slf4j
只需要那些 jar 来汇集日志输出。有什么想法吗?
最佳答案
它看起来像 StateUtils类(class)正在使用 java.util.logging(7 月)。按理说其他myfaces类也用到了jul。因此,您可能希望通过 SLF4J 收集 jul 日志。看看bridging legacy APIs ,特别是 jul-to-slf4j
桥。
请参阅SLF4JBridgeHandler javadocs安装 jul-to-slf4j
时的使用说明。
关于java - 使用 Slf4j 和 Log4j 进行 Tomcat 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012595/