Где просмотреть зарегистрированные SQL-запросы в play2?
Я обнаружил, что в application.conf
есть такая конфигурация:
# If enabled, log SQL statements being executed.
db.default.logStatements=true
Я включил его, но я не могу найти файл журнала, который регистрировал выполненные sqls.
Где я могу найти его или пропустить что-то?
Ответы
Ответ 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/.