Tomcat访问日志轮换文件几分钟内删除

问题描述

我正在使用类生成 tomcat localhost 访问日志 -

<Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd.HH:mm" renameOnRotate="true" prefix="localhost_access_log" suffix=".txt" maxDays="<%= @access_log_max_days %>"

由于我的节点没有足够的内存来存储所有访问日志,我想在 10 分钟左右后删除旋转的文件。我的问题是我们如何为 maxDays 构造提供十进制值(或

任何帮助将不胜感激。提前致谢!

解决方法

不能,maxDays 的值是一个整数,值不大于 0 表示不旋转。所以您可以设置的最小值是 1

无论如何,跨越几分钟的日志文件不会让您诊断几乎任何问题。日志占用的磁盘空间比您可能部署的任何 Web 应用程序少几个数量级,因此我认为每天轮换日志不会成为问题。

编辑: maxDays="1" 的设置仍然会给您留下两个日志文件:当前一个和前一个。如果您只想拥有当前的,您可以在 Tomcat 中禁用轮换,并使用诸如 logrotate 之类的外部实用程序:

<Valve className="org.apache.catalina.valves.AccessLogValve"  
       prefix="localhost_access_log"
       suffix=".txt"
       rotatable="false"
       checkExists="true" />

Logrotate 可以根据文件大小进行旋转,因此应该可以解决您的问题。