我想將hibernate查詢記錄到一個webapp特定的日誌文件中。 我可以記錄任何消息,但我仍然無法記錄休眠查詢。
即使在不同的文件中,它們也正在server.log
內部進行記錄,但我需要爲運行在同一服務器上的每個應用程序指定一個特定於應用程序的日誌。
我正在使用log4j 1.2
,我能夠創建日誌文件,記錄傳遞給控制檯但是hibernate查詢的每個信息。
在database.properties
文件中,我找到了負責控制檯中日誌記錄輸出的hibernate.show_sql=true
。 這是我提到的那種控制檯的日誌輸出:無法登錄Hibernate查詢log4j
16:10:35827 INFO [標準輸出(HTTP-本地主機-127.0.0.1-8080-1)休眠:選擇[...](這裏被輸出正確的查詢通過,準備語句
?
)
無論如何,我需要的是記錄該輸出。 我嘗試了不同的log4j.xml
設置,但仍然沒有成功,它會創建日誌文件但不會記錄這些輸出。 以下是當前設置,即將所有內容都記錄在同一個文件中,當我能夠記錄甚至是將要分離日誌的信息時。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="mainFileAppender2" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="100MB" />
<param name="maxBackupIndex" value="50" />
<param name="File" value="${webapp.root}/WEB-INF/logs/mainCORE.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{1}:%L %m %n" />
</layout>
</appender>
<appender name="journaldev-hibernate2" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${webapp.root}/WEB-INF/logs/hib-queriesCORE.log" />
<param name="Append" value="false"/><!--value="true" /-->
<param name="ImmediateFlush" value="true" />
<param name="MaxFileSize" value="200MB" />
<param name="MaxBackupIndex" value="50" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %d{Z} [%t] %-5p (%F:%L) - %m%n" />
</layout>
</appender>
<root>
<priority value="debug"></priority>
<!-- <appender-ref ref="stdout"/> -->
<appender-ref ref="mainFileAppender2"/>
</root>
此配置記錄的一切,但那些輸出。在server.log
被記錄如下:
16:10:35827 INFO [標準輸出](HTTP-本地主機 - 127.0.0.1-8080-1)休眠:選擇[...](查詢的其餘部分)
解決這個問題。 –