代码改变世界

Tomcat关闭日志catalina.out

  猎手家园  阅读(1887)  评论(0编辑  收藏  举报

事件起因:有一天,接收服务器报警,说硬盘空间不够了。可我明明配了200G的空间,只挂了一个简单的业务系统啊?

最后查到,原来一个名为catalina.out文件占了120多G。

 

经过查询资料,了解到catalina.out文件原来是tomcat自动产生的,运行久了会越来越大,对系统的稳定造成了一定的影响。

可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。

catalina.org.apache.juli.FileHandler.level = WARNING
catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
catalina.org.apache.juli.FileHandler.prefix = catalina.

将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。

日志的级别有:SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

官方文档说明:http://tomcat.apache.org/tomcat-8.0-doc/logging.html

 

两个比较简单粗暴的方法:

1、直接删除掉:rm -rf catalina.out

但是每次启动的时候都会重新生成,我的办法是写到启动脚本里,在启动业务后自动执行删除。

 

2、存档+清空

使用cron每天来备份当前的catalina.out,然后清空他的内容;

复制代码
#!/bin/sh

y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`
cd /PATH /tomcat/logs
cp catalina.out catalina.out.$y$m$d
echo > catalina.out
exit
复制代码

 

还有没有更好的办法,期待高人给个指点,谢谢!

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示