以下是使用带有Grails 1.2的log4j DSL在Config.groovy中的基本log4j配置,它按预期工作(将所有错误记录到给定文件):
log4j = {
appenders {
file name:'file', file:"c:/error.log"
}
error 'grails.app'
root {
error 'file'
}
}
如何将其转换为属性样式log4j配置文件?以下不起作用:
log4j.rootLogger=ERROR, FA
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=C:/error.log
log4j.logger.grails.app=ERROR, FA
我怀疑它与error 'grails.app'
的翻译有关,但我真的不知道。此外,文件甚至不会被创建,而对于第一个DSL版本,它会在应用程序启动时创建。
如果它有任何区别,则在外部配置属性文件(但是,使用外部log4j.groovy文件可以正常工作):
grails.config.locations = ["file:${basedir}/extconf/log4j.properties"]
我真正想要的是一个外部log4j属性文件,它将所有应用程序异常记录到文件中。
答案 0 :(得分:1)
我认为这里的问题是你的属性文件没有被用来配置log4j。通过grails.config.locations
包含它根本行不通。
一个选项是将log4j.properties放在类路径上,例如直接放在'grails-app / conf'中。检查是否有效,获取正确的配置,然后检查log4j文档以了解如何为属性文件指定备用位置。它可能涉及设置系统属性。