java - 使用 Slf4j 和 Log4j 进行 Tomcat 日志记录

标签 java tomcat log4j slf4j

我已经将网络应用程序部署到 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/

相关文章:

java - 使用 Servlet 上下文让两个 servlet 使用同一个对象

jsf - 无法访问 tomcat 临时文件夹中的文件

java - Log4j 中带日期的文件名

java - 如何为 QuickFIX/J 日志配置 log4j2.xml?

java - Log4j.xml 类别多个具有不同优先级的 appender-ref

java - 如何解决Primefaces中的 "p:message not working"?

java - Spring Boot 部署失败,Weblogic 10.3.4.0 中出现 StackoverflowError

java - 为什么我不能用 iText 垂直打印这个字符串?

java - Java 中的宾果纸牌游戏

java - 如何将 Jenkins 中的编码设置为 UTF-8