A good thing in Grails is that in Grails artifacts like controllers and services we have a log
property to add log statements in our code. If we want to have the output of these log statements we must use a special naming convention for the log names. Each logger is prefixed with grails.app
followed by the Grails artifact. Valid artifact values are controllers
, services
, domain
, filters
, conf
and taglib
. This is followed by the actual class name. So for example we have a controller SampleController
in the package mrhaki.grails
then the complete logger name is grails.app.controllers.mrhaki.grails.SampleContoller
.
The following sample configuration is for pre-Grails 3:
// File: grails-app/conf/Config.groovy ... log4j = { ... info 'grails.app.controllers' debug 'grails.app.controllers.mrhaki.grails.SampleController' info 'grails.app.services' ... } ...
In Grails 3 we can use a common Logback configuration file. In the following part of the configuration we set the log levels:
// File: grails-app/conf/logback.groovy ... logger 'grails.app.controllers', INFO, ['STDOUT'] logger 'grails.app.controllers.mrhaki.grails.SampleController', DEBUG, ['STDOUT'] logger 'grails.app.services', INFO, ['STDOUT'] ...
Written with Grails 2.5.0 and 3.0.1.