I have a class in src/groovy in my grails project.
How do i make a log field that gets injected with the correct logger for that class ?
Is there a commons logging or just log4j in grails ?
I have a class in src/groovy in my grails project.
How do i make a log field that gets injected with the correct logger for that class ?
Is there a commons logging or just log4j in grails ?
You'd add it just like a regular Java class:
Logger log = Logger.getLogger(getClass()) // log4j
or
Log log = LogFactory.getLog(getClass()) // commons logging
A slightly more Groovy way to do the same thing is:
private static def log = LogFactory.getLog(this)
This takes advantage of the fact that this
in a static context refers to the Class
object.
Using the standard Log4j's new Logger(getClass()) worked, but logged 'java.lang.Class' for me (using Grails 1.2.1). This problem went away with the Sublog plugin and @WithLog. See http://www.grails.org/plugin/sublog. This plugin also does not make Trace become Debug and Fatal Error...!