Как настроить logs / catalina.out из Tomcat 6 для каждого приложения. (Настройте специальный файл журнала для веб-приложения для sys.out, sys.err) - PullRequest
27 голосов
/ 26 августа 2009

Требование это ...

У нас есть 3 веб-приложения, развернутые на сервере RHEL-5, мы развернули приложения с tomcat 6.0.16. Мы хотим настроить stdout, stderr, которые находятся в tomcat / logs / catalina.out в файле журнала приложения, например,

кот / журналы / app1.log кот / журналы / app2.log кот / журналы / app3.log

мы используем log4j, но он генерирует только детали журналирования, нам нужен стандартный вывод для каждого приложения, который находится в tomcat / logs / catalina.out

Любая помощь приветствуется ...

1 Ответ

30 голосов
/ 27 августа 2009

Попробуйте это,

  1. Каждое приложение должно использовать свой собственный log4j. Вы можете добиться этого, поместив log4j.jar в WEB-INF / lib каждого приложения.
  2. В каждом файле конфигурации log4j (по умолчанию используется WEB-INF / classes), укажите имя файла журнала, например, log4j.appender.AppLog.File=${catalina.home}/logs/app1.log.
  3. Добавьте swallowOutput="true" для каждого контекста, поэтому stdout, stderr перейдет в ваш собственный журнал.

Мы делаем это на Tomcat 5.5, но я думаю, что это должно работать и на 6.0.

РЕДАКТИРОВАТЬ: вот наш META-INF / context.xml,

<?xml version="1.0" encoding="UTF-8"?>
<Context override="true" swallowOutput="true" useNaming="false">
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <Manager pathname=""/>
</Context>
...