我试图在生产环境中的单独文件中维护log4j配置。我有此log4j.properties
文件(其在生产驻留在WEB-INF/classes
):使用grails.config.locations在Grails生产环境中配置Log4j
log4j.rootLogger=error, stdout
log4j.rootLogger.additivity=false
log4j.logger.grails.app=info, stdout
log4j.additivity.grails.app=false
log4j.additivity.grails.app.service=false
log4j.logger.grails.app.controller=debug, stdout
log4j.additivity.grails.app.controller=false
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%7r] %6p - %14.14c - %m%n
我完全从Config.groovy
除去log4j配置。并根据此评论http://jira.codehaus.org/browse/GRAILS-2730?focusedCommentId=137021&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_137021第二个选项我Config.groovy
加入log4j.properties
的位置是这样的:
production {
grails.serverURL = "http://xxxxx.ru/${appName}"
grails.config.locations = [ "classpath:log4j.properties" ]
}
但在部署应用程序时,我仍然得到有关stacktrace.log
文件除外:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: stacktrace.log (Permission denied)
at java.io.FileOutputStream.openAppend(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:207)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
...
我不明白为什么..任何人?
谢谢。
但我部署的WAR - 我指的是web应用程序,由'Grails的war'作出部署WAR - 在'WEB-INF/classes'中有文件'log4j.properties'。 – Grigory 2010-11-05 14:59:41
抱歉,误解。 – robbbert 2010-11-05 15:22:02