framework - ¿Dónde ver las declaraciones SQL registradas en play2?
play framework evolutions (4)
Encontré que hay una configuración de este tipo en application.conf
:
# If enabled, log SQL statements being executed.
db.default.logStatements=true
Lo he habilitado, pero no puedo encontrar ningún archivo de registro que haya registrado ejecutado sqls.
¿Dónde puedo encontrarlo o me extraño algo?
1. application.conf
asegurarse:
db.default.logStatements=true
Esta configuración es en realidad una configuración de bonecp que es el grupo de conexiones utilizado en play2
2. registrador personalizado
Agregue una configuración de registrador personalizada a conf/logger.xml
.
El contenido puede ser:
<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>
El com.jlbox.bonecp
es para bonecp
, y el play
y la application
son para play2.
3. desactivar la configuración del registrador en application.conf
Comenta la configuración del registrador en 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
Reinicie play, y verá todos los SQL ejecutados (incluidos los valores de los parámetros).
Esto ya no funciona en Play 2.4.2 por lo que puedo decir. El motor del conjunto de conexiones predeterminado se cambió a HikariCP.
Agregue esto a su application.conf y siga las instrucciones a continuación. Las cosas deberían funcionar:
Application.conf
db.default.pool = "bonecp"
db.default.bonecp.logStatements=true
conf / logger.xml Agregue una configuración de registrador personalizada a 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>
Para HikariCP (es decir, comenzando con Play 2.4), consulte https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging :
HikariCP no incluye inherentemente el registro de JDBC en este momento. Esta es una decisión consciente, no un elemento de hoja de ruta futura de supervisión o no desarrollado. Casi todas las principales bases de datos tienen un controlador JDBC capaz de iniciar sesión por sí mismo. Para aquellos que no lo hacen, log4jdbc-log4j2 es una buena opción.
Esta página wiki documenta cómo habilitar el registro para bases de datos comunes, así como log4jdbc-log4j2.
Para log4jdbc-log4j2: agregue "org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16"
a libraryDependencies
; la configuración se describe en https://code.google.com/archive/p/log4jdbc-log4j2/ .
Simplemente agregue lo siguiente a application.conf (funciona para mí en el juego 2.2.1)
db.default.logStatements=true
logger.com.jolbox.bonecp=DEBUG