哪里可以看到play2中记录的sql语句?

时间:2012-02-21 03:48:30

标签: sql logging playframework-2.0 anorm

我发现application.conf中有这样的配置:

# If enabled, log SQL statements being executed.
db.default.logStatements=true

我启用了它,但是我找不到任何记录执行的sqls的日志文件。

我在哪里可以找到它,或者我错过了什么?

4 个答案:

答案 0 :(得分:57)

1。 application.conf

确保:

db.default.logStatements=true

此配置实际上是bonecp的设置,它是play2中使用的连接池

2。自定义记录器

将自定义记录器配置添加到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适用于bonecpplayapplication适用于播放2。

3。在application.conf中禁用记录器设置

application.conf注释记录器设置:

# 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(包括参数值)。

答案 1 :(得分:5)

根据我的判断,这不再适用于Play 2.4.2。默认连接池引擎已更改为HikariCP。

将此添加到您的application.conf并按照以下说明操作。事情应该有效:

<强> Application.conf

db.default.pool = "bonecp"
db.default.bonecp.logStatements=true

<强> CONF / logger.xml 将自定义记录器配置添加到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>

答案 2 :(得分:3)

只需将以下内容添加到application.conf(适用于我在游戏2.2.1中)

db.default.logStatements=true

logger.com.jolbox.bonecp=DEBUG

答案 3 :(得分:1)

对于HikariCP(即从Play 2.4开始),请参阅https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging

  

此时HikariCP本身并不包含JDBC日志记录。这是一个有意识的决定,而不是未来的监督或未开发的路线图项目。几乎所有主要数据库都有一个能够自行登录的JDBC驱动程序。对于那些没有的人,log4jdbc-log4j2是个不错的选择。

     

此Wiki页面介绍了如何为常见数据库启用日志记录,以及log4jdbc-log4j2。

对于log4jdbc-log4j2:将"org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16"添加到libraryDependencies;配置在https://code.google.com/archive/p/log4jdbc-log4j2/描述。