The following is a basic log4j configuration inside Config.groovy using the log4j DSL with Grails 1.2, it works as expected (log all errors to the given file):
log4j = {
appenders {
file name:'file', file:"c:/error.log"
}
error 'grails.app'
root {
error 'file'
}
}
How would one translate this into a prop开发者_Go百科erties style log4j configuration file? The following does not work:
log4j.rootLogger=ERROR, FA
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=C:/error.log
log4j.logger.grails.app=ERROR, FA
I suspect it has something to do with the translation of error 'grails.app'
but I really don't know. Also, the file doesn't even get created, whereas with the first DSL version, it gets created when the application starts.
If it makes any difference, the properties file is configured externally (However, using an external log4j.groovy file works fine):
grails.config.locations = ["file:${basedir}/extconf/log4j.properties"]
All I really want is an external log4j properties file which logs all application exceptions to a file.
I believe the problem here is that your properties file is not being used to configure log4j. Including it via grails.config.locations
simply won't work.
One option is to put log4j.properties on the classpath, for example directly in 'grails-app/conf'. Check whether that works, get the configuration right, and then check the log4j documentation to find out how you can specify an alternative location for the properties file. It probably involves setting a system property.
精彩评论