你几乎是对的。log4j
闭包在整个配置被解析和组装后执行,在闭包中你可以通过变量访问完整的配置config
。你可以说
grails.config.locations = ['file:file.properties']
log4j = {
appenders {
file name:'myAppli', file:"${config.myAppli.log.path}myLogs.log"
}
// ...
}
我已经用 Grails 2.2 对此进行了测试:运行grails create-app log4jtest
以创建一个新应用程序,然后编辑log4jtest/grails-app/conf/Config.groovy
以在顶部添加
grails.config.locations = ["file:file.properties"]
logfile.name = "from-config.log"
和log4j
关闭
// log4j configuration
log4j = {
println "filename: ${config.logfile.name}"
// rest of closure as before
使用运行此应用程序grails run-app
,您将看到它打印filename: from-config.log
(实际上是两次)。现在在包含该行file.properties
的顶级文件夹中创建一个名为的文件log4jtest
logfile.name=from-external.log
再次运行该应用程序,这一次它将打印出来filename: from-external.log
。