tomcat - 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
构造提供十进制值(或 < 1 天)值,以便删除旋转文件的速度比每天一次更快?
任何帮助都感激不尽。提前致谢!
解决方案
你不能, 的值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可以根据文件大小进行旋转,因此它应该可以解决您的问题。
推荐阅读
- windows - 使用 cygwin 和 bash 发送电子邮件,出现身份验证错误
- r - 如何使用 tidyr::crossing 函数
- python - 段落 Reportlab 中的断线
- filesystems - 我可以使用 SFGAO 标志来限制文件夹重命名、复制、移动、删除操作吗?
- c# - Rx .NET 在某些情况下跳过值更改
- react-native - TypeError:_this.setState 不是函数
- javascript - 使弹性项目彼此靠近
- azure - 我可以在经典虚拟网络中启用 Azure AD 域服务吗?
- oracle - APEX 交互式网格 - ERR-1002 无法找到项目的项目 ID
- c# - 使用自定义转换器注释(反)序列化时的类型安全