Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能理顺我的Tomcat日志记录?_Java_Hibernate_Tomcat_Logging - Fatal编程技术网

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

Java 我怎样才能理顺我的Tomcat日志记录?,java,hibernate,tomcat,logging,Java,Hibernate,Tomcat,Logging,我正在使用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.

我正在使用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数据JPA和Hibernate。要进行调试,已启用showSql。所有查询都出来了,但都指向
localhost.DATE.log
文件。谁能告诉我如何修复,使所有语句都进入log4j指定文件吗?

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

默认情况下,Tomcat使用
java.util.logging
API进行所有内部日志记录。因此,输出转到您提到的localhost.DATE.log

您可以更改配置,请参阅章节
(对于Tomcat 6.x~8.x)

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

默认情况下,Tomcat使用
java.util.logging
API进行所有内部日志记录。因此,输出转到您提到的localhost.DATE.log

您可以更改配置,请参阅章节
(对于Tomcat 6.x~8.x)

删除logging.properties文件会使-D消失。但是,即使我根据引用添加了log4j.properties文件,Hibernate的输出也没有显示更多关于它的信息——该引用并没有真正说明如何将SystemOut重定向到我的appender。我该怎么做?在尝试only=INFO之前,我没有查看引用,因为它们是如何添加到localhost文件的。没有工作,所以我检查了引用-这解释了为什么需要=DEBUG!这很有效-谢谢你!删除logging.properties文件使-D消失。但是,即使我根据引用添加了log4j.properties文件,Hibernate的输出也没有显示更多关于它的信息——该引用并没有真正说明如何将SystemOut重定向到我的appender。我该怎么做?在尝试only=INFO之前,我没有查看引用,因为它们是如何添加到localhost文件的。没有工作,所以我检查了引用-这解释了为什么需要=DEBUG!这很有效-谢谢你!