【问题标题】:How can I straighten out my Tomcat logging?如何理顺我的 Tomcat 日志记录?
【发布时间】:2016-08-23 07:54:39
【问题描述】:

我正在处理一个我没有做过的 Tomcat 配置,并且希望得到任何帮助来修复日志记录。由于未知的原因,有三个与日志相关的 -D 参数传递到启动中。流程如下:

./bin/java -Djava.util.logging.config.file=CATALINA_BASE_DIR_HERE/tomcat/conf/logging.properties 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Dlog4j.configuration=file:CATALINA_BASE_DIR_HERE/tomcat/conf/log4j.properties ...

logging.properties 文件的相关部分如下所示。我相信这是标准的。

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
...
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

为了完整起见,这里是 log4j.properties 文件的相关部分:

log4j.rootLogger=INFO, logfile

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.File=MY_DIR/my_log.txt
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = [%d{ABSOLUTE}] [%t] %-5p [%c] - %m%n
log4j.appender.logfile.Append=true

# per first answer given below, added:
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, logfile

在今天之前,没有真正的问题 - 所有日志数据都按需要进入 log4j 文件。在这个 Tomcat 中部署的 war 文件使用 Spring Data JPA 和 Hibernate。要调试,showSql 已启用。所有的查询都出来了,但是到了localhost.DATE.log 文件。谁能告诉如何修复,以便所有语句都转到 log4j 指定文件?

【问题讨论】:

    标签: java hibernate tomcat logging


    【解决方案1】:

    如果将showSql 设置为true,hibernate 会将SQL 语句打印到SystemOut。您应该将log4j.logger.org.hibernate.SQL=DEBUG 添加到log4j 配置中,这样hibernate 也可以记录SQL 语句。 (原因可以在this answer找到)

    默认情况下,Tomcat 使用java.util.logging API 进行所有内部日志记录。所以输出转到localhost.DATE.log,就像你提到的那样。

    您可以更改配置,请参阅Using Log4j部分 (Tomcat 6.x~8.x)

    【讨论】:

    • 删除 logging.properties 文件使那些 -D 消失了。但即使我根据引用添加到 log4j.properties 文件中,Hibernate 的任何输出都没有显示
    • 想一想-该参考并没有真正说明如何将 SystemOut 重定向到我的附加程序。我该怎么做?
    • 在尝试仅 =INFO 之前我没有查看参考资料,因为这就是将它们添加到 localhost 文件的方式。没用,所以我检查了参考 - 这解释了为什么需要 =DEBUG !效果很好 - 谢谢!
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多