将基本Config.groovy log4j DSL转换为外部log4j.properties

时间:2010-06-15 21:11:17

标签: logging grails log4j

以下是使用带有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属性文件,它将所有应用程序异常记录到文件中。

1 个答案:

答案 0 :(得分:1)

我认为这里的问题是你的属性文件没有被用来配置log4j。通过grails.config.locations包含它根本行不通。

一个选项是将log4j.properties放在类路径上,例如直接放在'grails-app / conf'中。检查是否有效,获取正确的配置,然后检查log4j文档以了解如何为属性文件指定备用位置。它可能涉及设置系统属性。