Назад | Перейти на главную страницу

Прокрутка и очистка журналов HTTP Tomcat 6

Мы запускаем наше веб-приложение в контейнере Apache Tomcat 6. Наш код прекрасно использует SLF4J и Logback, а также выполняет откат / очистку. Журнал Tomcat (catalina, stdout и т. Д.) Просто удаляется при перезапуске службы Tomcat.

Проблема в том, что мы также ведем журналы HTTP. Насколько можно судить, это исходит из этой строки в файле Tomcat server.xml.

<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="httplogs" pattern="combined" resolveHosts="false" prefix="" suffix=".log" rotatable="true" fileDateFormat="yyyy-MM-dd" />

Кажется, что это нормально вращается, но никогда не очищает. Есть ли способ, чтобы Tomcat очистил это автоматически, или мне нужно изменить сценарий перезапуска, чтобы очистить каталог httplogs?

Я бы посоветовал очистить файлы журнала с помощью задания cron (UNIX) или запланированного задания (Windows).

Сначала определите, как долго вы хотите хранить журналы: 1 неделю, 1 месяц, 3 месяца? Затем каждый день запускайте сценарий, удаляющий старые журналы. В Unix для удаления файлов журнала старше 90 дней:

find /path/to/httplogs/ -name "*.log" -type f -mtime +90 -exec rm -f {} \;

В Windows можно использовать аналогичную команду (forfiles доступно только в некоторых выпусках)

forfiles /p "C:\path\to\httplogs\" /s /m *.log /d -90 /c "cmd /c del @PATH"

Прочтите онлайн-документацию по этим командам, поймите и проверьте, что они делают, прежде чем помещать их в производственную среду.

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

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

Я почти уверен, что его нужно очистить при перезапуске службы tomcat вместе с другими журналами, которые вы упомянули.