Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Play Framework 2.0 and Ebean SQL logging

Tags:

I want to examine what SQL statements are generated by Ebean to find out why certain exceptions (related to SQL syntax) are occurring in my Play 2.0 application. Is there a way to log the SQL statements generated by Ebean in Play Framework 2.0?

In Play 1.x, there is a jpa.debugSQL config option, which if set to true, will do exactly this. Does a similar setting for Ebean exist for Play 2.0? The documentation page about Ebean of Play 2.0 is still a bit scarce.


What I have tried so far:

I have added these method calls in my controllers and the onStart / onRequest methods of the Global object, but it doesn't have any effect:

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

I have modified the log levels from application.conf, but it didn't help either (even with log level TRACE).

like image 662
Tommi Avatar asked Mar 15 '12 12:03

Tommi


2 Answers

Sorry to be late to the party, but I use this in development:

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

Add those two lines to the application.conf and you are good to go.

It outputs all the sql statements. Hope it helps.

like image 89
mbseid Avatar answered Sep 21 '22 10:09

mbseid


You can enable SQL logging by using the following statement

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

Use this command in the onRequest interceptor for example

In a next release, you will certainly be able to configure this in the file ebean.properties.

// Tips : use Play.isDev() to log only in dev mode 
like image 28
Julien Lafont Avatar answered Sep 19 '22 10:09

Julien Lafont