logging playframework-2.0 ebean

Jugar Framework 2.0 y Ebean SQL logging



playframework-2.0 (3)

Quiero examinar qué declaraciones SQL genera Ebean para descubrir por qué ocurren ciertas excepciones (relacionadas con la sintaxis SQL) en mi aplicación Play 2.0. ¿Hay alguna manera de registrar las sentencias SQL generadas por Ebean en Play Framework 2.0?

En Play 1.x, hay una opción de configuración jpa.debugSQL , que si se establece en true, hará exactamente esto. ¿Existe una configuración similar para Ebean para Play 2.0? La página de documentación sobre Ebean of Play 2.0 aún es un poco escasa.

Lo que he intentado hasta ahora:

He agregado estas llamadas a métodos en mis controladores y los métodos onStart / onRequest del objeto Global, pero no tiene ningún efecto:

Ebean.getServer(null).getAdminLogging().setLogLevel(LogLevel.SQL); Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(Play.isDev());

Modifiqué los niveles de registro de application.conf , pero tampoco me ayudó (incluso con el nivel de registro TRACE ).


Lamento llegar tarde a la fiesta, pero la uso en desarrollo:

db.default.logStatements=true logger.com.jolbox=DEBUG

Agregue esas dos líneas a la aplicación.conf y estará listo.

Emite todas las sentencias sql. Espero eso ayude.


Puede habilitar el registro de SQL utilizando la siguiente instrucción

Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(true);

Utilice este comando en el interceptor onRequest por ejemplo

En una próxima versión, sin duda podrá configurar esto en el archivo ebean.properties .

// Tips : use Play.isDev() to log only in dev mode


También puede obtener SQL in situ utilizando el método getGeneratedSQL. Muestra de código a continuación

Query<PreventionActivity> where = find.where( and( and( ge("Age_FROM", age) , or(le("Age_TO", age), eq("Age_TO", 0)) ) , or(eq("Gender_CD", genderCd), eq("Gender_CD", "*")) ) ); List<PreventionActivity> list = where.findList(); Logger.info("sql "); Logger.info(where.getGeneratedSql());