To enable full stack traces just add the command line argument -Dgrails.full.stacktrace=true
when calling grails
, e. g.:
grails -Dgrails.full.stacktrace=true run-app
First you can enable SQL logging by adding the property logSql = true
to the data source (in DataSource.groovy
), e. g.:
environments {
development {
dataSource {
url = 'jdbc:mysql://localhost/dbname?autoreconnect=true'
username = 'user'
password = 'secretpwd'
logSql = true
}
}
}
This method has the disadvantage that the SQL commands are visible, though, the bound values are not.
To produce more output, format the SQL commands, and see the bound parameter values, first turn off the logSql
property for the database because otherwise it'll output SQL commands twice.
Then add the following properties in DataSource.groovy
:
hibernate {
format_sql = true
use_sql_comments = true
}
This will produce far more readable SQL commands than simply logSql
would do. Then, add the following log4j settings to Config.groovy
:
log4j = {
debug 'org.hibernate.SQL'
trace 'org.hibernate.type'
}
The first setting logs the SQL commands, the second one logs the bound parameters and the bindings of the result set.