代码之家  ›  专栏  ›  技术社区  ›  Andreas

n天后如何删除tomcat访问日志?

  •  21
  • Andreas  · 技术社区  · 14 年前

    我只想保留Tomcat访问日志阀创建的最近N天的访问日志。 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access%20Log%20Valve

    但是似乎没有配置属性来定义日志文件的保存时间?我想这是因为“访问日志阀”只创建日志文件而不删除它们,对吗?

    5 回复  |  直到 6 年前
        1
  •  13
  •   shinynewbike    14 年前

    默认情况下 rotatable 对于访问日志为true,因此您将每24小时创建一个新文件。

    tomcat本身不会对旧文件进行任何管理,unix系统的一般原则是在系统上设置cron作业,将旧文件归档到备份目录中并/或删除它们。

        2
  •  4
  •   Community Rick James    7 年前

    对于windows,基于erwan在 Tomcat localhost_access_log files cleanup ,对于给定文件夹并递归到所有子文件夹中:

    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 using FORFILES in batch to delete tmp and bak files older than a week :

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

    您可以尝试创建logrotate配置:

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

    “su tomcat tomcat”-我添加此选项是为了避免在错误权限上出现logrotate错误

        4
  •  1
  •   angryMan    6 年前

    以ApacheTomcat7.0为例。可以使用maxDays参数删除旧的日志文件。 https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html

        5
  •  1
  •   w1100n    6 年前

    为Tomcat 7 您可以配置tomcat/conf/logging.properties

    例如:
    1catalina.org.apache.juli.filehandler.maxDays=90天

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