1
以下是Config.groovy中使用log4j DSL和Grails 1.2的基本log4j配置,它按預期工作(將所有錯誤記錄到給定文件):將基本Config.groovy log4j DSL轉換爲外部log4j.properties
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屬性文件,該文件記錄所有應用程序例外的文件。
感謝您的替代方法。但是在Grails 1.1和Grails 1.2之間做了些什麼改變,這使得在權威指南(第二版),第310頁,第12章/外部化配置,列表12-9中所做的明確聲明無效。 – 2010-06-16 21:16:11
恐怕我無法訪問DGG進行檢查。據我所知,你從來沒有能夠指定一個標準的log4j.properties文件作爲外部配置。 您可以使用'grails.config.locations'指定外部屬性文件,但Log4j配置是一個相當特殊的情況。因此,通過您提供的示例,您可以訪問「ConfigurationHolder.config.log4j.rootLogger」屬性。它不會對Log4j本身產生任何影響。 這是我的理解,但我可能在這方面是錯誤的。 – 2010-06-17 09:08:32