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

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

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

tomcat / журналы / app1.log tomcat / журналы / app2.log tomcat / журналы / app3.log

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

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


person Garudadwajan    schedule 26.08.2009    source источник


Ответы (1)


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

  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>
person ZZ Coder    schedule 27.08.2009
comment
Спасибо, друг ... Я хочу точно знать, где я должен поместить swallowOutput = true, это /tomcat/conf/Catalina/www.app.com/context.xml и в какой тег я должен поместить swallowOutput = true? - person Garudadwajan; 27.08.2009
comment
Я отредактировал ответ и добавил наш context.xml. Это место лучше, чем упомянутое вами, потому что оно не зависит от конфигурации контейнера. - person ZZ Coder; 27.08.2009
comment
Если я помещаю данный context.xml, то соединение с базой данных не работает ... в чем может быть проблема? мы не получаем соединение с БД из context.xml ... - person Garudadwajan; 27.08.2009
comment
Если вы используете ресурс JNDI для определения источника данных, вам необходимо включить именование. Удалите useNaming = false. - person ZZ Coder; 27.08.2009
comment
Этот пост мне помогает, и моя головная боль ушла ... Я пишу этот комментарий в апреле 2013 года и в этой ветке 2009 года ... Итак, есть ли какие-нибудь обновления? или любой новый способ сделать то же самое ?? Мое требование также упомянуто Гарудадваджаном .... Я уже проголосовал за вопрос, ответ и ответы, упомянутые в комментарии ZZ Coder. - person Manan Shah; 03.04.2013
comment
@MananShah У меня здесь то же самое требование, что вы нашли? - person mounaim; 04.02.2016