Как настроить ведение журнала Tomcat JULI для сворачивания файлов журнала?

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

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

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

ОБНОВЛЕНИЕ: Решение, которое я нашел, заключалось в том, чтобы вообще не использовать регистратор Juli! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

Спасибо,

Грег


person Community    schedule 25.09.2008    source источник


Ответы (2)


Обновление: теперь я понимаю вашу точку зрения, прочитав больше. «Реализация Tomcat JULI не предназначена для использования в качестве полнофункциональной библиотеки журналов, а является лишь простым мостом к этим библиотекам. Однако 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
person Matt    schedule 25.09.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>
person Jonas Klemming    schedule 05.10.2008