АРХИВА 10 Help

Настройка ротации логов `catalina.out` в Tomcat 10

По умолчанию Tomcat 10 не предусматривает встроенную ротацию логов catalina.out. Поскольку этот файл может неограниченно расти в размере, настройка его ротации является критически важной задачей для обеспечения стабильности системы. Ниже рассмотрены наиболее эффективные способы решения данной проблемы.

1. Использование внешнего инструмента (рекомендуется)

Наиболее надежным решением для Linux-систем является использование стандартного инструмента logrotate.

Шаги по настройке logrotate:

  1. Создайте конфигурационный файл для logrotate:
    Создайте файл /etc/logrotate.d/tomcat со следующим содержимым:

    /путь/к/tomcat/logs/catalina.out { daily rotate 7 compress copytruncate missingok notifempty }

    Описание параметров:

    • daily: ротация выполняется ежедневно.

    • rotate 7: хранить архивы за последние 7 дней.

    • compress: сжимать старые лог-файлы для экономии места.

    • copytruncate: копирует содержимое файла и обнуляет оригинал. Это позволяет Tomcat продолжать запись в тот же файл без необходимости перезапуска сервиса.

    • missingok: не генерировать ошибку, если файл отсутствует.

    • notifempty: не проводить ротацию, если файл пуст.

  2. Проверьте работоспособность: Вы можете запустить logrotate вручную в режиме тестирования, чтобы убедиться в корректности настроек:

    sudo logrotate -d /etc/logrotate.d/tomcat

2. Альтернативный метод: использование cronlog

Если logrotate по каким-то причинам недоступен, можно воспользоваться утилитой cronlog, которая перенаправляет вывод stdout/stderr в отдельные файлы с поддержкой ротации. Однако данный метод требует изменения скрипта запуска Tomcat.

3. Использование встроенных средств логирования (Log4j/logback)

Для полного отказа от catalina.out рекомендуется перенастроить приложение на использование современных библиотек логирования, таких как Log4j2 или Logback, которые поддерживают ротацию «из коробки» и позволяют гибко управлять уровнями логирования.

Резюме

Для большинства инсталляций logrotate с опцией copytruncate является золотым стандартом, так как не требует остановки сервера и легко интегрируется в системное администрирование Linux.

24 August 2026