我想检查一下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
)。
答案 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