conf/application.conf 設定
jpa.debugSQL=true
Console ログ
2015-07-05 14:58:25,514 DEBUG insert into comment
(createDate, isDisable, modifyDate, version, remarks, id) values (?, ?, ?, ?, ?, ?)
- パラメタライズドクエリは ? と表示される
conf/log4j.properties ファイルを作成し、log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder を設定する
log4j.rootLogger=INFO, Console
log4j.logger.play=INFO
log4j.logger.org.hibernate=WARN
# Show sql parameters for play logger
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=trace
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %p %m%n
Console ログ
2015-07-05 15:12:27,880 DEBUG insert into comment
(createDate, isDisable, modifyDate, version, remarks, id) values (?, ?, ?, ?, ?, ?)
2015-07-05 15:12:27,880 TRACE binding parameter [1] as [TIMESTAMP] - Sun Jul 05 15:12:27 JST 2015
2015-07-05 15:12:27,881 TRACE binding parameter [2] as [INTEGER] - 0
2015-07-05 15:12:27,881 TRACE binding parameter [3] as [TIMESTAMP] - <null>
2015-07-05 15:12:27,881 TRACE binding parameter [4] as [BIGINT] - 0
2015-07-05 15:12:27,881 TRACE binding parameter [5] as [VARCHAR] - コメントです
2015-07-05 15:12:27,881 TRACE binding parameter [6] as [BIGINT] - 3
- パラメタライズドクエリは binding parameter として表示される
Mavenリポジトリに登録がないので、https://code.google.com/p/log4jdbc/ から log4jdbc4-1.2.jar をダウンロードして、Playプロジェクトの lib フォルダに配置する
- play ec を忘れずに
conf/application.conf 設定
# jdbcドライバとurl設定をlog4jdbcに差し替える
#db.url=jdbc:postgresql://127.0.0.1:5432/SampleProject
db.url=jdbc:log4jdbc:postgresql://127.0.0.1:5432/SampleProject
#db.driver=org.postgresql.Driver
db.driver=net.sf.log4jdbc.DriverSpy
# SQLログが重複するので無効化しておく
jpa.debugSQL=false
conf/log4j.properties 設定
log4j.rootLogger=INFO, Console
log4j.logger.play=INFO
log4j.logger.org.hibernate=WARN
# Show sql parameters for play logger
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=trace
# Show sql parameters for log4jdbc
# sample: https://code.google.com/p/log4jdbc/source/browse/doc/log4j.properties
log4j.logger.jdbc=FATAL
log4j.logger.jdbc.sqltiming=INFO
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %p %m%n
Console ログ
2015-07-05 15:31:43,376 INFO batching 1 statements: 1:
insert into comment(createDate, isDisable, modifyDate, version, remarks, id)
values ('07/05/2015 15:31:43.320', 0, NULL, 0, 'コメントです', 1)
{executed in 1 msec}
- パラメータがインラインで表示される、また処理にかかった時間も表示される
ちなみに log4jdbc-log4j2, log4jdbc-remix は、log4jdbcの後継だが、Play1では上手く動作しなかった。。