[英]Grails with external log4j with name “${appname}.log”, it not work
1.Grails版本2.5.1
我在環境中使用Grails外部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中使用它,一切都很好...
我的環境中有類似的東西,並且工作正常。 不同之處可能是我的內部和外部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定義,又可以在內部添加一個外部定義。 您只需.main
它們命名不同的名稱,不必是.main
或.external
,也可以是.foo
和.bar
。
${appName}
在外部配置文件中不起作用,至少在Grails2中不起作用。 使用grails.util.Metadata.current.getApplicationName()
(在${}
內或之外)。 請參閱: 在外部配置中訪問應用程序屬性($ {appName})
盡管在示例log4j代碼中的任何地方都看不到appName
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.