У меня есть Tomcats, где журнал приложений (тот, что с именем [tomcat]. [Hostname]. [Node]. [Webapp] .log name format) не может быть очищен, если я не остановлю Tomcat и не очищу журнал. Размер журнала на мгновение становится нулевым, но вскоре журнал возвращается к своему исходному размеру. Даже когда журнал отображается как обнуленный, использование диска остается прежним.
Это вызывает проблемы с дисковым пространством, поскольку сценарий архивирования архивирует журнал, но не может его очистить.
Почему это происходит и что я могу сделать, чтобы решить эту проблему? Остановить Tomcats невозможно, так как услуги компании работают круглосуточно и без выходных.
Есть несколько возможных ответов на ваш вопрос. Распространенным подходом и, вероятно, самым простым решением вашей проблемы было бы введение ротации журналов:
Согласно вашему описанию, я предполагаю, что вы говорите о "стандартной" конфигурации ведения журнала, обычно помещаемой в <TOMCAT_HOME>/conf/logging.properties
Пример для приложения-менеджера:
3manager.org.apache.juli.FileHandler.maxDays = 3
Ваш скрипт архивирования теперь может забирать "старые" файлы. Дополнительная информация о входе в Tomcat в Документация Tomcat
Другая возможность конфигурации (в зависимости от ваших конкретных требований) - это изменение компонента Valve, находящегося в <TOMCAT_HOME>/conf/server.xml
Пример конфигурации для каждого хоста:
<Host name="example.host.domain" appBase="webapp_example" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="webapp_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" maxDays=3 /> </Host>
Другой способ - использовать DailyRollingFileAppender
или RollingFileAppender
в Log4j, где вы также можете определить maxBackupIndex
для автоматического удаления старых файлов.
Если вам необходимо повернуть и стандартный файл "catalina.out", вы можете найти описание в Вопросы-Ответы