Как удалить журнал доступа Tomcat через n дней?
Мне бы только хотелось сохранить журналы доступа за последние n дней, созданные Tomcat Access Log Valve.
http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access%20Log%20Valve
Но, похоже, нет атрибута конфигурации - Атрибут, чтобы определить, как долго хранить лог файлы? Я думаю, это потому, что "Access Log Valve" создает файлы журналов и не удаляет их, верно?
Ответы
Ответ 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 при неправильных разрешениях
Ответ 4
Incase из Apache Tomcat 7.0. Вы можете использовать параметр maxDays для удаления старых файлов журнала. https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
Ответ 5
для Tomcat 7 вы можете настроить tomcat/conf/logging.properties
например:
1catalina.org.apache.juli.FileHandler.maxDays = 90
https://tomcat.apache.org/tomcat-7.0-doc/logging.html
Ответ 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