Как да задам максимален брой ролки и максимален размер на журнала за tomcat?

Имам проблем с пространството, така че трябва да огранича размера на catalina.out до 10M и да огранича броя на ролките до 3 предишни дни. Възможно ли е само с конфигуриране на logging.properties? Благодаря.


person user710818    schedule 01.12.2011    source източник
comment
Знам, че това е стара публикация, но тъй като предпочитам да имам всички отговори в този сайт, само ще добавя, че можете също да следвате тази алтернатива. Той е много лесен за внедряване в Unix машини   -  person Edu Castrillon    schedule 11.07.2014
comment
Комбинирането на дни и размер не се обработва от повечето конфигурации за регистриране, базирани на собственост, и комбинацията не винаги е интуитивна. Базиран на размер регистрационен файл може да обхваща моменти или месеци. Ако имате целеви размер, тогава размер * брой завъртания ви държи в това ограничение. Ако трябва да запазите X дни, тогава може да се наложи да предвидите повече място.   -  person jla    schedule 22.09.2018


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


Трябва да внедрите файловия манипулатор, ако искате да поддържате ежедневна ротация с помощта на JUL. Намерих персонализирано внедряване от този блог. Все още не съм го пробвал. Можете да го препоръчате, ако имате интерес.

person Ken Chan    schedule 01.12.2011
comment
Да, но въпросът беше за 3 дни, а не за 3 файла. - person StKiller; 01.12.2011
comment
Да, прав си. Погрешно прочетох въпроса. JUL изглежда няма вграден манипулатор, който да върти дневника ежедневно. - person Ken Chan; 01.12.2011
comment
Защо да зададете ограничението на 2^10*1000, това изглежда малко случайно? Защо не 1MB (1000000 байта) или 1MiB (2^20 / 1048576 байта) - person dan carter; 11.11.2013
comment
Когато използвате ротация, може да искате да използвате %g: '%g номерът на поколение за разграничаване на ротираните регистрационни файлове' - person mateuszb; 26.11.2013
comment
Как въртите регистрационните файлове за достъп на tomcat (localhost_access*) въз основа на размера? - person Balaji Boggaram Ramanarayan; 08.08.2014
comment
Добре ли е да посочите това във файловете logging.properties в директорията conf на Tomcat? - person Dojo; 19.09.2014

От най-малко Tomcat 5.5 "вътрешното регистриране за Apache Tomcat използва JULI, пакетиран преименуван разклонител на Apache Commons Logging, който е твърдо кодиран да използва рамката java.util.logging (JUL)."

Последните версии на JULI и Access Log Valve по подразбиране използват формат за дата ГГГГ-ММ-дд. Регистрационните файлове juli.FileHandler се наричат ​​{prefix}{date}{suffix}, където датата е yyyy-MM-dd, ако rotatable е true (по подразбиране). Ако е невярно, датата се изпуска и Tomcat няма да обработва ротацията на файла. Има и параметър maxDays за ограничаване на броя на тези ротирани журнали на Tomcat, които ще се съхраняват. Можете например да зададете това на 3 и да имате съхранявани регистрационни файлове само за три дни.

Access Log Valve е по-конфигурируем. Например, той ви позволява да посочите fileDateFormat от стандартния yyyy-MM-dd, така че можете да добавите HH за ротация на всеки час или просто да ротирате ежемесечно. Можете също да изберете да отложите форматираното именуване до завъртане с renameOnRotate.

Ако имате нужда от нещо по-красиво от това или въртенето, базирано на размера и броя на JUL, може би е най-добре да зададете rotatable на false и да обработвате въртенето външно за Tomcat.

person jla    schedule 21.09.2018