1.Grails版本2.5.1
我在env中使用了Grails external log4j:
grails.config.locations = ["file:${basedir}/grails-app/config/log4j.groovy"]
像这样和log4j.groovy
log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name:"dailyAppender",
layout:pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss,SSS} %l %c{3} %m%n'),fileName:"D:\\error-logs\\b2-error.log",datePattern:"'.'yyyy-MM-dd")
}
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
error 'org.codehaus.groovy.grails.web.servlet',
'org.codehaus.groovy.grails.web.pages',
'org.codehaus.groovy.grails.web.sitemesh',
'org.codehaus.groovy.grails.web.mapping.filter',
'org.codehaus.groovy.grails.web.mapping',
'org.codehaus.groovy.grails.commons',
'org.codehaus.groovy.grails.plugins',
'org.codehaus.groovy.grails.orm.hibernate',
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
debug "grails.plugin.mail",
"gsuk.sms",
'grails.app.jobs',
"gsuk.service"
}
嗯,当log4j.groovy中的“=”
时出错我不知道为什么以及如何让它发挥作用
顺便说一句,如果我在config.groovy中使用它,一切都还可以......答案 0 :(得分:0)
我的环境中有类似的东西,它的工作正常。不同之处可能是我的内部和外部Config.groovy文件中都有log4j部分。在我的\grails-app\conf\Config.groovy
文件中,我有:
grails.config.locations = ["file:path\to\external-config.groovy"]
...
log4j.main = {...}
在我的external-config.groovy中我有:
log4j.external = {...}
这允许我在我的应用程序中始终使用基本log4j定义,然后是可以附加到内部定义的外部log4j定义。您只需要以不同的名称命名,不必是.main
或.external
,它可以是.foo
和.bar
。
答案 1 :(得分:0)
${appName}
在外部配置文件中不起作用,至少在Grails2中是这样。使用grails.util.Metadata.current.getApplicationName()
(进出${}
)。请参阅:access to application properties (${appName}) in external configuration
虽然我在示例log4j代码中没有看到appName
。