我怎样才能理顺我的Tomcat日志记录?

时间:2016-04-28 13:44:08

标签: java hibernate tomcat logging

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

./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文件中。任何人都可以告诉如何解决所有语句转到l​​og4j指定文件?

1 个答案:

答案 0 :(得分:2)

如果将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)

相关问题