2016-04-28 58 views
0

我在Tomcat配置上工作我沒有做,並希望有任何幫助來解決日誌記錄。出於未知原因,有三個與傳遞到啓動日誌的日誌相關的參數。該過程如下所示:我怎樣才能理清我的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文件。任何人都可以告訴如何解決,以便所有的語句去log4j指定的文件?

回答

2

如果您設置showSqltrue,hibernate會將SQL語句打印到SystemOut。您應該添加log4j.logger.org.hibernate.SQL=DEBUG到log4j config,這樣hibernate也可以記錄SQL語句。 (原因可在this answer中找到)

默認情況下,Tomcat使用 java.util.logging API進行所有內部日誌記錄。所以你提到的輸出轉到 localhost.DATE.log

您可以更改配置,請參閱卸下logging.properties文件做出那些-D的走開了部分 Using Log4j (Tomcat的6.x的〜8.x中)

+0

。但即使我添加到每個引用的log4j.properties文件中,Hibernate的輸出都沒有顯示出來 – JoeG

+0

思考更多關於它的信息 - 該引用沒有真正說明如何將SystemOut重定向到我的appender。我會怎麼做? – JoeG

+0

我再次編輯答案,請確認。 –