Tomcat关闭日志catalina.out
翻了下收藏夹,顺手整理到这里来。
catalina.out文件会越来越大,对系统的稳定造成了一定的影响。conf/logging.properties
一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。
1 |
catalina.org.apache.juli.FileHandler.level = WARNING |
2 |
catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs |
3 |
catalina.org.apache.juli.FileHandler.prefix = catalina. |
将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
来自:
http://rwl6813021.iteye.com/blog/752416
Linux下的tomcat产生的日志文件不象windows下的按时间时间和大小来处理,
尽管也生成了日志文件catalina.2009-0x-0x.log类型的文件,但是其中的catalina.out文件依然增大;它为啥在增大,为啥在增大,原因我就不探究了。
Tomcat的官方文档,由于是外文,偶还没有看明白di;
http://tomcat.apache.org/tomcat-6.0-doc/logging.html
据说是修改某些配置可以实现,希望高人指点,给个官方的解决方案;
老是增大也不是办法,还是想其他办法搞定它为好:
方法1—分割流
使用cronolog工具切分Tomcat的catalina.out日志文件
cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。
具体的方法,您可以去google之,这个方法占网络搜索结果的主流;
方法2—脚本流
事情终究不过是个大文件处理的问题,强大的bash来搞定;
使用cron每天来备份当前的catalina.out,然后清空他的内容;
参考脚本如下:
1 |
#!/bin/sh |
2 |
y=` date "+%Y" ` |
3 |
m=` date "+%m" ` |
4 |
d=` date "+%d" ` |
5 |
cd /PATH /tomcat/logs |
6 |
cp catalina.out catalina.out.$y$m$d |
7 |
echo > catalina.out |
8 |
exit |
注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径(原因暂保密)
方法3—猥琐流
打开bin目录下的catalina.sh文件,终究不过是个bash文件,
查找一下,catalina.out总共出现三次;
01 |
touch "$CATALINA_BASE" /logs/catalina.out |
02 |
if [ "$1" = "-security" ] ; then |
03 |
echo "Using Security Manager" |
04 |
shift |
05 |
"$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \ |
06 |
-Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ |
07 |
-Djava.security.manager \ |
08 |
- |
09 |
?-Djava.security.policy== "$CATALINA_BASE" /conf/catalina.policy \ |
10 |
-Dcatalina.base= "$CATALINA_BASE" \ |
11 |
-Dcatalina.home= "$CATALINA_HOME" \ |
12 |
-Djava.io.tmpdir= "$CATALINA_TMPDIR" \ |
13 |
org.apache.catalina.startup.Bootstrap "$@" start \ |
14 |
>> "$CATALINA_BASE" /logs/catalina.out 2>&1 & |
15 |
if [ ! -z "$CATALINA_PID" ]; then |
16 |
echo $! > $CATALINA_PID |
17 |
fi |
18 |
else |
19 |
"$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \ |
20 |
-Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ |
21 |
-Dcatalina.base= "$CATALINA_BASE" \ |
22 |
-Dcatalina.home= "$CATALINA_HOME" \ |
23 |
-Djava.io.tmpdir= "$CATALINA_TMPDIR" \ |
24 |
org.apache.catalina.startup.Bootstrap "$@" start \ |
25 |
>> "$CATALINA_BASE" /logs/catalina.out 2>&1 & |
个人觉得也就是这里是写catalina.out文件的;让他写到一个其他的空设备如何?
修改前注意原文件的catalina.sh的备份哟~!!
修改以上代码中的
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &
为
>> /dev/null 2>&1 &
保存,然后启动tomcat,目前这个 catalina.out一直是空的了。
这个方法是偶自己想到的,个人认为比较勇敢,目前还没有在生产环境测试过。虚拟机测试是通过的。
方法4—人流
这个方法其实就是linux系统管理员手工去删除,人工操作,简称“人流”;
删除之前最好停止tomcat的服务;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)