Назад | Перейти на главную страницу

Почему tomcat7 входит как в catalina.out, так и в catalina.YYYY-MM-DD.log?

В 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?

Прочитав некоторую информацию на http://tomcat.apache.org/tomcat-7.0-doc/logging.html, похоже, нужно закомментировать или удалить все упоминания о java.util.logging.ConsoleHandler из /etc/tomcat/logging.properties должен сделать свое дело.

После этого каким-то образом файл все еще открывается для записи с помощью tomcat (как stdout и 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#

Tomcat wiki поддерживает два возможных решения:

  • Запретить приложению войти в систему System.out или System.err с использованием фреймворков логирования.
  • Подавить захват swallowOutput. Куда идет System.out? Первые два шага инструкция как это сделать.

Дополнительно одно замечание по поводу прокатки. Как мне повернуть catalina.out?