Play Framework 2.0和Ebean SQL日志记录

时间:2012-03-15 12:22:43

标签: logging playframework-2.0 ebean

我想检查一下Ebean生成哪些SQL语句,以找出为什么在我的Play 2.0应用程序中发生了某些异常(与SQL语法相关)。 有没有办法在Play Framework 2.0中记录Ebean生成的SQL语句?

在Play 1.x中,有一个jpa.debugSQL配置选项,如果设置为true,则会执行此操作。 Play 2.0是否存在类似的Ebean设置? documentation page about Ebean of Play 2.0仍然有点稀缺。


到目前为止我尝试了什么:

我在我的控制器和Global对象的onStart / onRequest方法中添加了这些方法调用,但它没有任何效果:

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

我已经从application.conf修改了日志级别,但它也没有帮助(即使是日志级别TRACE)。

3 个答案:

答案 0 :(得分:53)

很抱歉迟到了,但我在开发中使用它:

db.default.logStatements=true

logger.com.jolbox=DEBUG

将这两行添加到application.conf中,你就可以了。

它输出所有sql语句。希望它有所帮助。

答案 1 :(得分:4)

您可以使用以下语句启用SQL日志记录

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

onRequest拦截器中使用此命令,例如

在下一个版本中,您当然可以在文件ebean.properties中配置它。

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

答案 2 :(得分:0)

此外,您可以使用方法getGeneratedSQL在现场获取SQL。代码示例

Num a => a