在play2哪里可以看到logging的sql语句?
我发现在application.conf
有这样的configuration:
# If enabled, log SQL statements being executed. db.default.logStatements=true
我已经启用它,但我找不到logging执行sqls的任何日志文件。
我在哪里可以find它,或者我想念什么?
1. application.conf
确保:
db.default.logStatements=true
这个configuration实际上是在play2中使用的连接池的一个设置
2.自定义logging器
将自定义logging器configuration添加到conf/logger.xml
。
内容可能是:
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-5level - %msg%n</pattern> </encoder> </appender> <logger name="com.jolbox.bonecp" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> <logger name="play" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> <logger name="application" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> </configuration>
com.jlbox.bonecp
用于bonecp
, play
和play
用于play2。
3.在application.conf中禁用logging器设置
在application.conf
注释logging器设置:
# Logger # ~~~~~ # You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory . # Root logger: # logger.root=ERROR # Logger used by the framework: # logger.play=INFO # Logger provided to your application: # logger.application=DEBUG
重新开始播放,你会看到所有执行的SQL(包括参数值)。
从我所知道的情况来看,这不再适用于Play 2.4.2。 默认连接池引擎已更改为HikariCP。
添加到您的application.conf并按照下面的说明。 事情应该工作:
Application.conf
db.default.pool = "bonecp" db.default.bonecp.logStatements=true
conf / logger.xml将自定义logging器configuration添加到conf / logger.xml。
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-5level - %msg%n</pattern> </encoder> </appender> <logger name="com.jolbox.bonecp" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> <logger name="play" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> <logger name="application" level="DEBUG"> <appender-ref ref="STDOUT" /> </logger> </configuration>
只需将以下内容添加到application.conf(适用于我在播放2.2.1)
db.default.logStatements=true logger.com.jolbox.bonecp=DEBUG
对于HikariCP(即从Play 2.4开始),请参阅https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging :
HikariCP目前并不包含JDBC日志logging。 这是一个有意识的决定,而不是一个疏忽或未开发的未来路线图项目。 几乎所有主要的数据库都有一个能够独立login的JDBC驱动程序。 对于那些没有,log4jdbc-log4j2是一个不错的select。
这个wiki页面logging了如何启用常用数据库的日志logging以及log4jdbc-log4j2。
对于log4jdbc-log4j2:将"org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16"
到libraryDependencies
; https://code.google.com/archive/p/log4jdbc-log4j2/中介绍了configuration。;