我的 Tomcat 日志在哪里?

我的 Tomcat 日志在哪里?

我使用 apt-get install tomcat6 在 Ubuntu 9.04 服务器上安装了 Tomcat6。我使用管理器界面上传了一个 WAR,并尝试启动该应用程序,但在 Web 界面上收到一个非常通用的错误,提示无法启动。

我正在尝试查找日志来确定为什么我的战争无法开始(我怀疑内存不足,因为我在一个小型 VPS 上)但我不知道它们在哪里。

/var/lib/tomcat6/logs 为空。我的 Tomcat 启动页面可靠地告知我以下内容;

Tomcat is installed with CATALINA_HOME in /usr/share/tomcat6 
CATALINA_BASE in /var/lib/tomcat6, 
following the rules from /usr/share/doc/tomcat6-common/RUNNING.txt.gz.

更新

我尝试着跑步;

$ ps -ax 
/usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid

但 /var/log/syslog 中没有任何内容

也运行

$ losof -p PID

没有显示任何日志文件...

$  for PID in $(pgrep jsvc);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
l-wx------ 1 root 500 64 2010-03-30 13:29 1 -> pipe:[301470406]
lrwx------ 1 root 500 64 2010-03-30 13:29 1 -> /dev/null
l-wx------ 1 root root 64 2010-03-30 13:29 1 -> pipe:[301470406]

谢谢,

加夫

答案1

这次讨论很晚了,但看起来 tomcat5.5 和 tomcat6 中的 03catalina.policy 文件实际上不允许写入日志文件。

最简单的解决方案是将 JULI 权限更改为:

// These permissions apply to JULI
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
    permission java.security.AllPermission;
};

显然,可能是我不知道的安全问题,但我真的懒得深入挖掘——我自己在这上面花了太长时间。

答案2

一个巧妙的技巧是运行命令“ lsof -p PID”,其中 PID 是 tomcat 服务器的进程 ID。此命令将为您提供该进程打开的所有文件的列表,包括日志文件。请参阅维基百科页面

答案3

默认检查

/var/log/tomcat6/catalina.out 

或类似的东西

并检查日志记录属性

/usr/share/tomcat6/conf/logging.properties

通常 /usr/share/tomcat6/conf/ 是 /etc/tomcat6/ 的符号链接

答案4

默认情况下,Tomcat 日志位于/var/log/tomcat?并且/var/lib/tomcat7/logs通常指向那里。

由于root,您可以通过以下方式检查:

tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out

如果仍有问题,请尝试通过以下方式查找:

sudo lsof | grep -E "java.*(out|txt|log)$"

相关内容