Как настроить ведение журнала Tomcat JULI для прокрутки файлов журнала? - PullRequest
17 голосов
/ 26 сентября 2008

У меня есть несколько веб-приложений, которые используют java.util.logging. Tomcat 5.5 настроен на использование регистратора Juli, так что каждое веб-приложение имеет свой собственный файл журнала. Проблема в том, что Juli не имеет свойств для максимального размера файла и количества файлов. С помощью Juli файлы будут неограниченно расти и работать только в конце дня. Также сохраняется неограниченное количество файлов журнала.

Свойства FileHandler вы можете увидеть на этой странице - Документация Apache Tomcat 5.5
Свойство limit или count отсутствует (следующие строки ничего не делают)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

Без изменения веб-приложений есть ли способ получить уникальные файлы журналов для каждого приложения с определенными границами размеров файлов журнала?

UPDATE: Решение, которое я нашел, не использовало регистратор Juli вообще! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

Спасибо

Грег

Ответы [ 2 ]

3 голосов
/ 05 октября 2008

РЕДАКТИРОВАТЬ: только что понял, что вы хотели для регистрации веб-приложения, что может быть невозможно с этой настройкой ...

Мое предложение, если вы используете Tomcat 6.0, - это скомпилировать дополнительный компонент для полного ведения общего журнала и использовать Log4j для настройки скользящих журналов.

Инструкция по сборке здесь http://tomcat.apache.org/tomcat-6.0-doc/building.html

Затем замените tomcat-juli.jar в каталоге / bin Tomcat и поместите tomcat-juli-adapters.jar в каталог / lib вместе с log4j.jar и log4j.properties.

Затем используйте что-то вроде:

<appender name="file" class="org.apache.log4j.RollingFileAppender">
  <param name="File" value="logfile.log"/>
  <param name="Threshold" value="INFO"/>
  <param name="MaxFileSize" value="10MB"/>
  <param name="MaxBackupIndex" value="3"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{ISO8601} %p %m%n"/>
  </layout>
</appender>
3 голосов
/ 26 сентября 2008

Обновление: Теперь я вижу вашу точку зрения после прочтения. «Реализация JULI Tomcat не предназначена для того, чтобы быть полнофункциональной библиотекой журналирования, а лишь простым мостом к этим библиотекам. Однако JULI предоставляет несколько свойств для настройки своих обработчиков. Они перечислены ниже». Забавно, что они говорят, что реализация java.util.Logging по умолчанию слишком ограничена, тогда они обходят ее, предоставляя еще более ограничивающую реализацию.

FileHandler javadocs

  • java.util.logging.FileHandler.limit указывает приблизительный максимальный объем записи (в байтах) в любой файл. Если это ноль, то нет предела. (По умолчанию нет ограничений).
  • java.util.logging.FileHandler.count указывает, сколько выходных файлов нужно перебрать (по умолчанию 1).

для одного файла на веб-приложение, вы, вероятно, захотите разделить его по имени регистратора, и это зависит от того, как регистраторы создаются для каждого приложения. Если они основаны на имени пакета или класса, вы можете отфильтровать журналы на основе этого. Похоже, пример по ссылке, которую вы указали, говорит, как это сделать

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...