Как установить максимальное количество рулонов и максимальный размер журнала для tomcat? - PullRequest
27 голосов
/ 01 декабря 2011

У меня проблема с пространством, поэтому нужно ограничить размер catalina.out до 10M и ограничить количество рулонов до 3 предыдущих дней.Это возможно только с настройкой logging.properties?Спасибо.

Ответы [ 2 ]

37 голосов
/ 01 декабря 2011

Поскольку 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 байт(1MB), и максимум бросить до 3 выходных файлов журнала.Вы можете обратиться к Javadoc java.util.logging.FileHandler для получения подробной информации о конфигурации.


Вам необходимо реализовать обработчик файлов, если вы хотите ежедневно поддерживать ротацию с помощью JUL.Я нашел пользовательскую реализацию из этого блога .Я еще не пробовал.Вы можете отослать его, если у вас есть интерес.

1 голос
/ 22 сентября 2018

Поскольку, по крайней мере, Tomcat 5.5 "внутреннее ведение журнала для Apache Tomcat использует JULI, упакованный переименованный ветвь Apache Commons Logging, который жестко запрограммирован для использования инфраструктуры java.util.logging (JUL)."

Последние версии JULI и Access Log Valve по умолчанию используют формат даты ГГГГ-ММ-дд. Журналы juli.FileHandler имеют имя {prefix} {date} {суффикс}, где date - это гггг-мм-дд, если вращаемое значение равно true (по умолчанию). Если false, дата удаляется, и Tomcat не будет обрабатывать ротацию файлов. Существует также параметр maxDays, чтобы ограничить количество тех журналов, которые будут вращаться в Tomcat. Например, вы можете установить его на 3 и хранить журналы только на три дня.

Клапан журнала доступа более настраиваемый. Например, он позволяет вам указать fileDateFormat по умолчанию из yyyy-MM-dd, чтобы вы могли добавлять ЧЧ, чтобы вращаться каждый час, или просто вращаться ежемесячно. Вы также можете отложить форматированное именование до поворота с помощью renameOnRotate.

Если вам нужно что-то более необычное, чем это или вращение, основанное на размере JUL и вращении, лучше всего установить вращаемое в false и обработать вращение внешним образом в Tomcat.

...