ejemplos - Play 2.4-Muestra la declaración de Ebeans SQL en los registros
select top sql server ejemplos (4)
El registro ha cambiado con Play 2.4. A partir de ahora, para mostrar las instrucciones de SQL en la consola, simplemente agregue la siguiente línea al archivo conf / logback.xml:
<logger name="org.avaje.ebean.SQL" level="TRACE" />
debería funcionar bien.
¿Cómo mostrar declaraciones SQL en el registro? Estoy usando EBeans y no se puede insertar por algunas razones, pero no puedo ver cuál es el problema.
Traté de editar mi configuración para:
db.default.logStatements=true
y agregue esto a logback.xml
<logger name="com.jolbox" level="DEBUG" />
para seguir algunas respuestas que encontré en línea, pero parece que no funciona para 2.4 ...
FYI, hay un buen video tutorial en la nueva página de documentación de Ebean que muestra la forma de capturar sentencias SQL solo para áreas seleccionadas del código.
Gracias a esto, puede registrar declaraciones solo en lugares problemáticos mientras desarrolla y / o usa las declaraciones registradas para realizar pruebas como se muestra en el video .
En resumen: agrega la última dependencia de avaje-ebeanorm-mocker a tu built.sbt
como siempre, para luego utilizarlo en tu código como:
LoggedSql.start();
User user = User.find.byId(123);
// ... other queries
List<String> capturedLogs = LoggedSql.stop();
Tenga en cuenta que ni siquiera necesita recuperar la List
de declaraciones si no necesita procesarlas, ya que se muestran en la consola como de costumbre. Para que pueda usarlo así también:
if (Play.isDev()) LoggedSql.start();
User user = User.find.byId(345);
// ... other queries
if (Play.isDev()) LoggedSql.stop();
Desde Play 2.5, el registro de sentencias SQL es muy fácil, Play 2.5 tiene una manera fácil de registrar sentencias SQL, compiladas en jdbcdslog , que funcionan en todas las bases de datos JDBC, implementaciones de grupo de conexiones y marcos de persistencia (Anorm, Ebean, JPA, Slick, etc.). Cuando habilite el registro, verá cada declaración de SQL enviada a su base de datos, así como también información de rendimiento sobre cuánto tiempo tarda la instrucción en ejecutarse.
La característica de registro de SQL en Play 2.5 se puede configurar por base de datos, usando la propiedad logSql:
db.default.logSql=true
Después de eso, puede configurar el nivel de registro jdbcdslog-exp agregando estas líneas a logback.xml
:
<logger name="org.jdbcdslog.ConnectionLogger" level="OFF" /> <!-- Won'' log connections -->
<logger name="org.jdbcdslog.StatementLogger" level="INFO" /> <!-- Will log all statements -->
<logger name="org.jdbcdslog.ResultSetLogger" level="OFF" /> <!-- Won'' log result sets -->
Tuve éxito usando jdbcdslog . Como se menciona en @Saeed Zarinfam aquí , Play 2.5 incluye esto por defecto.
A diferencia de esta respuesta , esta solución muestra los valores de los parámetros en lugar de los signos de interrogación.
Estos son los pasos que seguí para que funcionen para Play 2.4 y MySQL:
Agregar a build.sbt:
"com.googlecode.usc" % "jdbcdslog" % "1.0.6.2"
Agregar a logback.xml:
<logger name="org.jdbcdslog.StatementLogger" level="INFO" /> <!-- Will log all statements -->
Cree un archivo conf / jdbcdslog.properties que contenga:
jdbcdslog.driverName=mysql
jdbcdslog.showTime=true
Cambie db.default.url (ejemplo):
jdbc:mysql://127.0.0.1:3306/mydb
cambios en jdbc:jdbcdslog:mysql://127.0.0.1:3306/mydb;targetDriver=com.mysql.jdbc.Driver
Cambie db.default.driver:
org.jdbcdslog.DriverLoggingProxy