Tomcat Grails应用程序赢得';无法在服务器上创建新日志

Tomcat Grails应用程序赢得';无法在服务器上创建新日志,tomcat,grails,Tomcat,Grails,我正在尝试创建4个不同的日志来写入(使用Tomcat)。下面是代码(有一些奇怪的东西,因为我正在试验): 当我部署并运行应用程序时,我在catalina.out中得到了以下信息: log4j:错误setFile(null,true)调用失败。 java.io.FileNotFoundException:/logs/info.log(没有此类文件或 在java.io.FileOutputStream.openAppend(本机方法)的 FileOutputStream.(FileOutputStr

我正在尝试创建4个不同的日志来写入(使用Tomcat)。下面是代码(有一些奇怪的东西,因为我正在试验):

当我部署并运行应用程序时,我在catalina.out中得到了以下信息:

log4j:错误setFile(null,true)调用失败。 java.io.FileNotFoundException:/logs/info.log(没有此类文件或 在java.io.FileOutputStream.openAppend(本机方法)的 FileOutputStream.(FileOutputStream.java:177)位于 java.io.FileOutputStream。(FileOutputStream.java:102)

(我尝试创建的每个日志都会收到相同的消息)。我错过什么了吗


谢谢

这个特定的错误消息可能意味着
/logs
目录不存在,或者运行Grails应用程序的用户ID无法写入该目录

但更一般地说,您的根记录器定义是错误的,您只需要将一个日志级别(默认情况下,对于没有指定更精确规则的记录器,您希望使用的级别)附加到所有附加器,例如

root {
    error 'infoLog', 'errorLog', 'warnLog', 'debugLog'
}

各种附加器的阈值将确保每个附加器都获得正确的消息:通过此配置
debugLog
将接收所有消息(debug、info、warn和error)<代码>信息日志将接收信息、警告和错误
warnLog
将收到警告和错误;而
errorLog
将只接收错误消息。

我确实让它工作了,但没有意识到,但你的观察是对的。实际上,如果你把dubug'infoLog','errorLog',等等放进去,它只会记录debug和lower。。。但是谢谢你的提示,让我回到正确的轨道上来。@js3v你应该在
root
部分中指定你想要用于下面没有指定特定级别的类的任何日志级别。根级别的
error
加上
debug'grails.app'
将向
grails.app.anything
调试日志发送
debug消息。
root {
    error 'infoLog', 'errorLog', 'warnLog', 'debugLog'
}