每当我启动我的grails应用程序时,使用我的tomcat6服务器上的生产环境,我在/var/log/tomcat6/catalina.out中看到以下错误:grails如何配置log4j登录到tomcat日志
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: stacktrace.log (Permission denied)
...
...
我收集这是因为log4j试图创建一个日志文件,并没有所需的权限。
理想情况下,我希望我的应用程序的日志文件转到现有的tomcat日志(/var/log/tomcat6/catalina.out)或转到/ var/log/tomcat6目录中的单独文件。
如何以最少量的配置更改log4j日志的位置?即我不想用自己的输出模式定义完整的appender,我只是想更改日志文件的位置。在这种情况下
log4j = {
appenders {
file name:'file', file: '/var/log/tomcat6/mylog.log'
}
root {
info 'stdout', 'file'
}
}
所有日志事件与info
级以上将被推到两个文件/var/log/tomcat6/mylog.log
和stdout(即tomcat会增加:
可避免硬编码路径到Tomcat的日志目录这样的:'文件名:“文件”,文件:(System.getProper ty('catalina.base')?:'target')+'/ logs/mylog.log' - 这可以在run-app或Tomcat中使用,因为如果没有设置catalina.base属性,它会写入日志目标/日志 –
也不记录在Tomcat重定向控制台记录器到catalina.out? –
我已经将appender文件属性设置为'/var/log/tomcat6/mylog.log',并创建了日志文件并记录到日志文件。不过,我仍然在'catalina.out'日志中看到上述错误。有没有人知道一个快速的方法,我可以告诉哪个文件log4j试图访问时,它会引发此错误? – srkiNZ84