Подтвердить что ты не робот

Где просмотреть зарегистрированные SQL-запросы в play2?

Я обнаружил, что в application.conf есть такая конфигурация:

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

Я включил его, но я не могу найти файл журнала, который регистрировал выполненные sqls.

Где я могу найти его или пропустить что-то?

4b9b3361

Ответ 1

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 для bonecp, а play и application для play2.

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-запросы (включая значения параметров).

Ответ 2

Это больше не работает в Play 2.4.2 из того, что я могу сказать. Механизм пула соединений по умолчанию был изменен на HikariCP.

Добавьте это в свой application.conf и следуйте инструкциям ниже. Все должно работать:

Application.conf

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

конф /logger.xml Добавьте конфигурацию logger в 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>

Ответ 3

Просто добавьте следующее в application.conf(работает для меня в игре 2.2.1)

db.default.logStatements=true

logger.com.jolbox.bonecp=DEBUG

Ответ 4

Для 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/.