У меня проблемы с местом, поэтому нужно ограничить размер catalina.out до 10M и ограничить количество рулонов до 3 предыдущих дней. Возможно ли настроить только logging.properties? Спасибо.
Как установить максимальное количество рулонов и максимальный размер журнала для tomcat?
Ответы (2)
Поскольку Tomcat внутри использует JUL для регистрации, вы можете использовать системное свойство java.util.logging.config.file
, чтобы указать путь к файлу свойств. Для формата этого файла свойств вы можете обратиться к вашему JRE_HOME/lib/logging.properties
(который является файлом конфигурации по умолчанию, используемым JUL)
Однако JUL не поддерживает ежедневную ротацию . Если вы не возражаете, вы можете использовать его java.util.logging.FileHandler
для ротации файлов журнала в зависимости от размера файла журнала:
# Define the FileHandler
handlers= java.util.logging.FileHandler
# Configure the FileHandler
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 1024000
java.util.logging.FileHandler.count = 3
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append=true
Тогда каждый файл журнала будет иметь предельный размер 1024000 байт (1 МБ) и максимальное число выходных файлов журнала — 3. Вы можете обратиться к документу Javadoc java.util.logging .FileHandler для получения подробной информации о конфигурации.
Вы должны реализовать обработчик файлов, если хотите поддерживать ежедневную ротацию с помощью JUL. Я нашел пользовательскую реализацию в этом блоге . Я еще не пробовал. Вы можете передать его, если у вас есть интерес.
По крайней мере, с Tomcat 5.5 «внутреннее ведение журнала для Apache Tomcat использует JULI, упакованную переименованную вилку Apache Commons Logging, которая жестко закодирована для использования инфраструктуры java.util.logging (JUL)».
Последние версии JULI и Access Log Valve по умолчанию используют формат даты ГГГГ-ММ-дд. Журналы juli.FileHandler называются {префикс} {дата} {суффикс}, где дата — гггг-ММ-дд, если значение rotatable равно true (по умолчанию). Если false, дата сбрасывается, и Tomcat не будет обрабатывать ротацию файлов. Существует также параметр maxDays, ограничивающий количество сохраняемых ротируемых журналов Tomcat. Например, вы можете установить это значение на 3 и хранить журналы только за три дня.
Клапан журнала доступа более настраиваемый. Например, он позволяет вам указать формат fileDateFormat по умолчанию yyyy-MM-dd, поэтому вы можете добавить HH для ротации каждый час или просто ротацию ежемесячно. Вы также можете отложить форматированное наименование до ротации с помощью renameOnRotate.
Если вам нужно что-то более причудливое, чем это или вращение на основе размера и количества JUL, может быть лучше установить rotatable на false и обрабатывать вращение извне для Tomcat.
- https://tomcat.apache.org/tomcat-8.5-doc/logging.html
- https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/juli/FileHandler.html
- https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html