Tomcat 部署grails应用程序时stacktrace.log出现问题

Tomcat 部署grails应用程序时stacktrace.log出现问题,tomcat,deployment,grails,log4j,stack-trace,Tomcat,Deployment,Grails,Log4j,Stack Trace,我对grails应用程序的部署有问题 我得到以下例外情况: 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>(FileOut

我对grails应用程序的部署有问题

我得到以下例外情况:

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:177)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
    at org.apache.log4j.spi.OptionHandler$activateOptions.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
    at org.codehaus.groovy.grails.plugins.logging.Log4jConfig.createFullstackTraceAppender(Log4jConfig.groovy:177)
    at org.codehaus.groovy.grails.plugins.logging.Log4jConfig.this$2$createFullstackTraceAppender(Log4jConfig.groovy)
    at org.codehaus.groovy.grails.plugins.logging.Log4jConfig$this$2$createFullstackTraceAppender.callCurrent(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
    at org.codehaus.groovy.grails.plugins.logging.Log4jConfig.configure(Log4jConfig.groovy:145)
    at org.codehaus.groovy.grails.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:62)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
May 25, 2011 11:16:54 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
我还尝试使用禁用记录器 log4j={ 附加物{ “null”名称:“stacktrace” } }

此目录的权限是为tomcat用户设置的

-rwxr--r-- 1 tomcat6 root 0 May 24 18:38 myapp-stacktrace.log

根本没有成功。。。感谢您的反馈和帮助

检查磁盘空间(长镜头)并尝试将chmoddding设置为777,以验证是否存在权限问题。如果是,您可能没有以tomcat用户的身份运行tomcat,或者您的目录已关闭……

我在Grails 1.3.7中遇到了类似的问题,并找到了解决方法(将堆栈跟踪日志推到标准日志目录中)


查看关于在Tomcat上部署Grails应用程序的官方文档

引用相关章节

请注意,在默认设置下,Grails将尝试向tomcat目录写入某些文件,通常是stacktrace.log和h2数据库。您的Tomcat目录可能安装有root的所有者/组,而Tomcat服务器则作为用户tomcat6运行。这将导致应用程序无法启动,并出现写入权限错误更改Grails生产设置,以便这些文件在其他地方写入具有正确权限的目录,或者将Tomcat目录(对于Unix:/var/lib/tomcat6)的所有者更改为tomcat6(或使用tomcat6\u用户设置的任何Tomcat用户)。


您可以使用
sudo chown tomcat6/var/lib/tomcat6
更改所有者(如果需要,替换运行tomcat的用户和正在写入日志的目录),这是大多数情况下最简单、最合适的解决方案。

ah,我脸红;-)老实说,很高兴我能提供帮助!我们最后写了:
file:(System.getProperty('catalina.base')?:'target')+'/logs/itsfeature.log'
-works bot for production and dev。
-rwxr--r-- 1 tomcat6 root 0 May 24 18:38 myapp-stacktrace.log
log4j = {
    appenders {
    rollingFile name: "stacktrace", maxFileSize: 1024, file: "/var/logs/piws-stacktrace.log"
    ....