Как удалить Tomcat Access Log через n дней? - PullRequest
21 голосов
/ 05 мая 2010

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

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

Ответы [ 6 ]

13 голосов
/ 05 мая 2010

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

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

4 голосов
/ 11 августа 2016

Для Windows, на основе ответа Эрвана в Очистка файлов Tomhost 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 голосов
/ 19 ноября 2015

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

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

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

1 голос
/ 20 декабря 2018

для кота 7 Вы можете настроить tomcat / conf / logging.properties

например:
1catalina.org.apache.juli.FileHandler.maxDays = 90

https://tomcat.apache.org/tomcat-7.0-doc/logging.html

1 голос
/ 19 июня 2018

Incase из Apache Tomcat 7.0. Вы можете использовать параметр maxDays для удаления старых файлов журнала. https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html

0 голосов
/ 25 апреля 2019

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

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
...