37

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

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

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

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

4

4 回答 4

58

1.应用程序.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,bonecp和是 play2 playapplication

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

于 2012-03-09T11:10:31.943 回答
6

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

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

应用程序.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>
于 2015-08-11T01:05:26.640 回答
4

只需将以下内容添加到 application.conf (在 play 2.2.1 中对我有用)

db.default.logStatements=true

logger.com.jolbox.bonecp=DEBUG
于 2014-02-26T06:45:46.307 回答
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/中描述。

于 2016-04-11T12:01:27.453 回答