play framework evolutions sql logging playframework-2.0 anorm

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