我有一个外部配置文件$ {} USERHOME/Grails的/ $ {APPNAME} /config.groovy:导入外部配置值到主配置中的Grails
package configs
grails.conf.logDirectory = '/home/serek/tmp/mamlog'
我想进口到主要的Grails的Config.groovy
grails.config.locations = ["file:${userHome}/.grails/${appName}/config.groovy"]
print grails.conf.logDirectory
log4j = {
appenders {
rollingFile name: 'infoLog', file: "${grails.conf.logDirectory}/info.log", threshold: org.apache.log4j.Level.INFO, maxFileSize: "1024MB", append: true
rollingFile name: 'warnLog', file: 'warn.log', threshold: org.apache.log4j.Level.WARN, maxFileSize: "1024MB", append: true
console name: 'stdout', layout: pattern(conversionPattern: '%d{yyyyMMdd.HHmmss.SSS} %r [%t] %-5p %c %x - %m%n')
}
不幸的是,打印grails.conf.logDirectory是不在主配置中可见。
我该如何处理?打印仅输出[:]
Groovy: 2.1.9
Grails: 2.3.2
===================================== ===
我找到了解决方案,恩Config.groovy中:
import org.yaml.snakeyaml.Yaml
Yaml yaml = new Yaml()
def extConfFilePath = "${userHome}/.grails/${appName}/mam.yaml" //my external conf in yaml
def extConfFileContent = new File(extConfFilePath).text
def extConf = yaml.load(extConfFileContent)
grails.ext = extConf
rollingFile name: 'infoLog', file: extConf.logDirectory + "info.log", threshold: org.apache.log4j.Level.INFO, maxFileSize: "1024MB", append: true
这应该工作......你检查了该文件的文件权限?尝试从bootstrap.groovy读取该文件 - 它可能会发现权限问题等。另请尝试删除“grails.conf”。部分的情况下,有关于grails的一些特殊情况。*和导入配置。 – nickdos