Подтвердить что ты не робот

Как удалить журнал доступа Tomcat через n дней?

Мне бы только хотелось сохранить журналы доступа за последние n дней, созданные Tomcat Access Log Valve. http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access%20Log%20Valve

Но, похоже, нет атрибута конфигурации - Атрибут, чтобы определить, как долго хранить лог файлы? Я думаю, это потому, что "Access Log Valve" создает файлы журналов и не удаляет их, верно?

4b9b3361

Ответ 1

По умолчанию rotatable имеет значение true для журнала доступа, поэтому у вас будет новый файл, создаваемый каждые 24 часа.

Tomcat сам по себе не выполняет домашнее хозяйство по старым файлам, общий принцип в системе Unix состоит в том, чтобы в системе было создано задание cron для архивирования старых файлов в резервный каталог и/или удаление их.

Ответ 2

Для Windows, на основе ответа Erwan в Tomcat localhost_access_log очистки файлов, для данной папки и рекурсии во все подпапки:

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

Чтобы проверить, просто используйте:

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

И при наличии нескольких суффиксов в папке журнала, как и .txt, так и .log, см. с помощью FORFILES в пакете для удаления файлов tmp и bak старше недели:

for %%t in (.txt, .log) do forfiles /p "C:\path\to\httplogs\" /s /m *%%t /d -10 /c "cmd /c del @PATH"

Ответ 3

Вы можете попытаться создать конфигурацию logrotate:

#cat /etc/logrotate.d/tomcat
/var/log/tomcat/*.log {
        su tomcat tomcat
        copytruncate  
        daily  
        rotate 6  
        compress  
        missingok
}

"su tomcat tomcat" - я добавил, чтобы избежать ошибки logrotate при неправильных разрешениях

Ответ 6

Я попытался настроить файл tomcat 7 logging.properties с максимальной настройкой дней, но это не сработало. Ниже приведен файл изменений:

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
**# Adding log purging rule
1catalina.org.apache.juli.FileHandler.maxDays = 1**

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
**# Adding log purging rule
2localhost.org.apache.juli.FileHandler.maxDays = 1**

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
**# Adding log purging rule
3manager.org.apache.juli.FileHandler.maxDays = 1**

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
**# Adding log purging rule
4host-manager.org.apache.juli.FileHandler.maxDays = 1**

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter