在 OpenBSD 5.2 上,tomcat-7.0.29 的默认安装似乎会将所有错误记录到和catalina.out
中catalina.YYYY-MM-DD.log
。
Cns# ll /var/tomcat/logs/catalina.*
-rw-r--r-- 1 _tomcat _tomcat 3067 Jan 16 20:47 /var/tomcat/logs/catalina.2013-01-16.log
-rw-r--r-- 1 _tomcat _tomcat 1313285 Jan 17 21:47 /var/tomcat/logs/catalina.2013-01-17.log
-rw-r--r-- 1 _tomcat _tomcat 19668 Jan 18 17:33 /var/tomcat/logs/catalina.2013-01-18.log
-rw-r--r-- 1 _tomcat _tomcat 2479 Jan 23 15:25 /var/tomcat/logs/catalina.2013-01-23.log
-rw-r--r-- 1 _tomcat _tomcat 1580 Jan 26 22:58 /var/tomcat/logs/catalina.2013-01-26.log
-rw-r--r-- 1 _tomcat _tomcat 48165 Jan 27 19:30 /var/tomcat/logs/catalina.2013-01-27.log
-rw-r--r-- 1 _tomcat _tomcat 34526 Jan 28 16:41 /var/tomcat/logs/catalina.2013-01-28.log
-rw-r--r-- 1 _tomcat _tomcat 141985 Jan 29 23:56 /var/tomcat/logs/catalina.2013-01-29.log
-rw-r--r-- 1 _tomcat _tomcat 123254 Jan 30 23:25 /var/tomcat/logs/catalina.2013-01-30.log
-rw-r--r-- 1 _tomcat _tomcat 145209 Jan 31 22:30 /var/tomcat/logs/catalina.2013-01-31.log
-rw-r--r-- 1 _tomcat _tomcat 2615 Feb 1 09:01 /var/tomcat/logs/catalina.2013-02-01.log
-rw-r--r-- 1 _tomcat _tomcat 10068 Feb 2 19:18 /var/tomcat/logs/catalina.2013-02-02.log
-rw-r--r-- 1 _tomcat _tomcat 50541 Feb 3 23:49 /var/tomcat/logs/catalina.2013-02-03.log
-rw-r--r-- 1 _tomcat _tomcat 17519 Feb 4 21:29 /var/tomcat/logs/catalina.2013-02-04.log
-rw-r--r-- 1 _tomcat _tomcat 1158 Feb 5 22:18 /var/tomcat/logs/catalina.2013-02-05.log
-rw-r--r-- 1 _tomcat _tomcat 179466 Feb 6 23:51 /var/tomcat/logs/catalina.2013-02-06.log
-rw-r--r-- 1 _tomcat _tomcat 14585534 Feb 7 14:15 /var/tomcat/logs/catalina.2013-02-07.log
-rw-r--r-- 1 _tomcat _tomcat 16680119 Feb 7 14:15 /var/tomcat/logs/catalina.out
(请注意的文件总大小catalina.YYYY-MM-DD.log
与大约相同catalina.out
,并且日志似乎重复。)
有没有办法让它只能登录到catalina.YYYY-MM-DD.log
,而不登录到catalina.out
?
答案1
在阅读了一些信息后http://tomcat.apache.org/tomcat-7.0-doc/logging.html,似乎注释掉或删除所有提及的java.util.logging.ConsoleHandler
应该/etc/tomcat/logging.properties
可以解决问题。
在此之后,不知何故该文件仍然会被 tomcat 打开进行写入(asstdout
和stderr
),但它似乎不再被任何东西所填充。
Cns# stat /var/tomcat/logs/catalina.out
1136 3949577 -rw-r--r-- 1 _tomcat _tomcat 15763648 16695929 "Feb 7 14:58:46 2013" "Feb 7 14:58:37 2013" "Feb 7 14:58:37 2013" 16384 32672 0 /var/tomcat/logs/catalina.out
Cns# fstat | fgrep -e USER -e 3949577
USER CMD PID FD MOUNT INUM MODE R/W SZ|DV
_tomcat java 8994 1 /var 3949577 -rw-r--r-- w 16695929
_tomcat java 8994 2 /var 3949577 -rw-r--r-- w 16695929
Cns#
答案2
Tomcat wiki 支持两种可能的解决方案:
- 阻止应用程序登录
System.out
或System.err
使用日志框架。 - 通过 抑制 捕获它
swallowOutput
。System.out 去哪儿了? 前两个步骤操作说明这个怎么做。
另外关于滚动还有一条评论。我如何旋转 catalina.out?