发布于2026-07-12 阅读(0)
扫一扫,手机访问
在Ubuntu上管理Ja va应用,日志文件膨胀是迟早要面对的问题。无论是Tomcat、Spring Boot还是其他Ja va服务,日志占据磁盘空间、影响系统稳定性的情况并不少见。清理日志这件事,说简单也简单,说复杂也有不少门道。下面我们从定位到清理,一个一个环节拆开来讲。
要清理日志,首先得知道日志在哪。常见的存放位置有这么几个:
如果一时半会找不到日志文件的位置,不急着翻文档。可以先查看应用的配置文件,比如 log4j.properties、logback.xml,看看输出路径写在哪。或者用 ps -ef | grep ja va 查看启动参数和工作目录,再结合 ls、find、tail、grep 这些基础命令,通常很快就能定位到具体文件。
知道日志在哪之后,下一步就是怎么清理。这里有几种方案,按推荐程度排个序。
如果应用持续往一个文件里写日志——典型的比如 catalina.out 这种按天轮转的文件——logrotate 是绕不开的工具。它本身是系统级工具,成熟稳定,配置也比较灵活。
举个Tomcat的例子。在 /etc/logrotate.d/ 下创建一个配置文件,比如 tomcat:
/usr/local/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
这里关键参数是 copytruncate。它的作用是先复制文件内容到归档文件,然后把原文件截断。这样做的好处是,应用不需要重启,文件句柄也不会丢失。对于持续写入的文件来说,这个策略比直接 rename 靠谱得多。
配置写完后,可以用 logrotate -d /etc/logrotate.d/tomcat 进行模拟测试,确认无误后用 sudo logrotate -f /etc/logrotate.d/tomcat 强制执行一次看看效果。
logrotate 属于外部手段。如果能从应用内部解决问题,那才是根本方案。大多数Ja va日志框架都支持滚动策略,比如 Logback 的 TimeBasedRollingPolicy 可以按天或按大小自动滚动,并压缩归档。
示例配置大概长这样:
logs/app.log
logs/app-%d{yyyy-MM-dd}.%i.log.zip
这样一配置,日志文件就不会无限膨胀,每天自动滚动,旧日志自动压缩成 zip,管理起来省心很多。
如果既不是生产环境,应用内滚动也没有配好,cron 是个不错的兜底方案。写一个简单的清理脚本,比如 /usr/local/bin/clean_ja va_logs.sh:
#!/bin/bash
find /opt/myapp/logs /var/log/myapp -type f -name "*.log" -mtime +30 -delete
这个脚本会删除30天前的 .log 文件。赋权后加入定时任务:
chmod +x /usr/local/bin/clean_ja va_logs.sh
echo "0 0 * * * /usr/local/bin/clean_ja va_logs.sh" | sudo tee /etc/cron.d/clean_ja va_logs
每天凌晨0点执行一次,操作成本低,效果也直接。
手动清理适合维护窗口内操作,线上环境不建议频繁使用。操作前需要确认文件没有被应用占用,然后选择清空或删除:
# 清空文件(不删文件,风险低)
> /opt/myapp/logs/app.log
# 或按时间删除
find /opt/myapp/logs -type f -name "*.log" -mtime +7 -delete
需要特别注意的是:对于正在写入的文件,直接删除会导致文件句柄失效,应用可能停止写入,甚至引发日志丢失。所以这种情况下优先选择 copytruncate 或者应用内轮转,手动操作时也建议用清空代替删除。
不同框架的日志配置略有差异,但在核心思路上是相通的。
Tomcat:catalina.out 是典型的大文件。推荐使用 logrotate 配合 copytruncate 策略,这样不用重启Tomcat。如果愿意改配置,也可以用 Log4j 的 RollingFileAppender 来接管标准输出,实现按天或按大小滚动,再设置保留份数,做到精细控制。
Spring Boot / 普通Ja va应用:Spring Boot 默认使用 Logback,配置起来非常方便。在 logback.xml 里配置 TimeBasedRollingPolicy 或 SizeAndTimeBasedRollingPolicy,指定保留天数、是否压缩、最大历史文件数量(maxHistory),基本就能一劳永逸。
清理日志这件事,操作本身不难,但容易在小细节上翻车。总结几点经验:

售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8