Assuming you are using Grails 1.1+, what about:
appenders {
file name:'infoLog', file:'info.log', threshold: org.apache.log4j.Level.INFO
file name:'warnLog', file:'warn.log', threshold: org.apache.log4j.Level.WARN
file name:'errorLog', file:'error.log', threshold: org.apache.log4j.Level.ERROR
}
root {
info 'infoLog','warnLog','errorLog'
}
With this configuration, info.log
will contain all log messages with level INFO and above (ie. INFO, WARN, ERROR, FATAL), warn.log
will contain WARN and above, error.log
will contain ERROR and above.
In the example above, I have configured the root logger, so everything (including Grails core) gets logged. But of course, you can configure this more fine-grained if you want.
Hope this helps.