I have this log4j configuration in my grails config.groovy
log4j = {
error \'org.codehaus.groovy.grails.web.servlet\', // controllers
\
I have exact the same jetty/tomcat env's. Spent hours to figure it out. The trick is to define the file location (a relative path in my case) as a global variable inside Config.groovy, customized it in the environment blocks, and use the variable location inside log4j closure. Sample code is at: http://denistek.blogspot.com/2010/02/grails-environment-specific-logging-to.html