2012-05-21 2 views
0

В настоящее время веб-приложения нашей компании генерируют сообщения журнала (через System.out), которые впоследствии автоматически анализируются другими программами.Как настроить регистрацию Tomcat 6.x в Linux, чтобы вести себя как сервис Windows Tomcat

Как услуга Windows, tomcat аккуратно производит журналы в свою папку «Журналы», разбитые на каждый день.

Проблема в том, что в Linux все идет на stdout, который может быть перенаправлен, не разбивается на ежедневные файлы.

Я попробовал вариант в conf/context.xml: «<« Контекст swallowOutput = true ... », но выход идет на catalina.out, нерасщепляется и комментируется с неудобными строками.

Вкратце: Как настроить tomcat 6.0 в linux для обработки System.out, как и для службы Windows.

Заранее спасибо - Artejera

+0

Вы пытаетесь подавить сообщения журнала stdout из своего webapp или в другом месте? Где классы, которые пишут на stdout? –

+0

Я пытаюсь позволить tomcat делать в linux то, что он уже делает в Windows (при запуске как услуге), с сообщениями stdout, генерируемыми классами webapp, которые используют directrly System.out.println(). – artejera

ответ

1

Насколько я знаю, Tomcat на * NIX и win32 ведут себя точно так же: стандартный вывод перенаправляется в файл, который не вращается. При установке Tomcat в качестве службы вы использовали установщик Tomcat (который устанавливает прокрутку) или вы использовали какую-либо другую процедуру для настройки своей службы?

В вашей Linux-среде вы используете bin/catalina.sh для запуска Tomcat, или используете jsvc или что-то еще? Ваши варианты различны для каждой стратегии запуска.

Если вы рассматриваете использование jsvc для запуска Tomcat, вы можете отправить SIGUSR1 в процесс jsvc, чтобы он снова открывал файлы журнала. Таким образом, вы можете иметь хрон или нечто подобное, выполнить следующее:

$ mv $CATALINA_BASE/logs/catalina.out $CATALINA_BASE/logs/catalina-`date -I`.out 
$ kill -SIGUSR1 $CATALINA_PID 

Это должно вновь открыть catalina.out с ничего в нем и достичь вращения вы ищете.

Если вам необходимо придерживаться bin/catalina.sh, вы можете взломать файл так, чтобы он транслировал stdout в службу ведения журнала, такую ​​как хронолог и т. Д., Который может вращать файлы журнала для вас.

+0

Правильно ... Я использую установщик служб Windows, и я пропустил тот факт, что, хотя он генерирует что-то вроде stdtout_yymmddhhmmss.log ... он не вращает его. Я предположил, что это так, моя ошибка. Благодаря этому. Немедленно получить эту же функциональность в Linux. Я использую скрипт startup.sh под сеансом «screen». Спасибо за разъяснение ... – artejera

+0

Обновленный ответ после этого последнего комментария. –