1. 程式人生 > >如何將Hibernate生成的SQL語句打印到日誌文件

如何將Hibernate生成的SQL語句打印到日誌文件

script ini hibernate prop ram per binding 需要 mod

背景:項目開發需要。

1 操作

只需要在log4j.properties中加入以下兩行代碼即可

#輸出sql語句到日誌  
log4j.logger.org.hibernate.SQL=debug  
  
#將對應的參數占位符?換成傳入的參數  
log4j.logger.org.hibernate.type=trace

實驗效果:

2017-09-05 16:51:26 [DubboServerHandler-thread-1] DEBUG org.hibernate.SQL (104) - 
    select
        cpsysparm0_.CODE 
as CODE65_0_, cpsysparm0_.NAME as NAME65_0_, cpsysparm0_.PARMVALUE as PARMVALUE65_0_, cpsysparm0_.PARMDESC as PARMDESC65_0_, cpsysparm0_.MODIFIABLE as MODIFIABLE65_0_, cpsysparm0_.VIEWABLE as VIEWABLE65_0_, cpsysparm0_.OPERUSER as OPERUSER65_0_, cpsysparm0_.OPERTIME
as OPERTIME65_0_ from CP_SYSPARM cpsysparm0_ where cpsysparm0_.CODE=? 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicBinder (83) - binding parameter [1] as [VARCHAR] - 012 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72
) - Found [當前場次 ] as column [NAME65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72) - Found [1] as column [PARMVALUE65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (67) - Found [null] as column [PARMDESC65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72) - Found [0] as column [MODIFIABLE65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72) - Found [1] as column [VIEWABLE65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72) - Found [init ] as column [OPERUSER65_0_] 2017-09-05 16:51:26 [DubboServerHandler-thread-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor (72) - Found [2011-11-23 10:06:47.0] as column [OPERTIME65_0_]

可以看到查詢的過程和結果都進行了輸出。

如何將Hibernate生成的SQL語句打印到日誌文件