文档章节

catalina.out文件过大

Carl_
 Carl_
发布于 2014/08/28 10:05
字数 904
阅读 231
收藏 2

文件过大占服务器内存太大的时候系统会变的很慢,然后打不开,适当的删除些tomcat下的log系统就正常了。内存够了。所以可以适当的删除catalina.out的文件,这个文件在每次重启tomcat的时候会进行更新备份当天的数据,比如在2011-12-15日重启服务了,服务器上有个catalina12-15.log的文件,如果你以为这就是从上一次重启服务到这次重启服务间得日志文件保存,那我告诉你也我不清楚,但是现在我清楚了,如果你每次都不清除catalina.out的文件,那每次尽管产生了log的文件,后续的东西也还是会在out的文件上继续追加的写日志,然后你会发现你重启了N次了,删掉了N个log,但是内存还是没大多少,这个时候果断的在停掉服务后删掉out文件再重启服务应该就OK了。我用的是最 差劲的那个办法了。适当的时候就删掉一些。

 

Linux下的tomcat产生的日志文件不象windows下的按时间时间和大小来处理,

尽管也生成了日志文件catalina.2009-0x-0x.log类型的文件,但是其中的catalina.out文件依然增大;它为啥在增大,为啥在增大,原因我就不探究了。

 

Tomcat的官方文档,由于是外文,偶还没有看明白di

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

据说是修改某些配置可以实现,希望高人指点,给个官方的解决方案;

老是增大也不是办法,还是想其他办法搞定它为好:

方法1—分割流

使用cronolog工具切分Tomcatcatalina.out日志文件

cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。

具体的方法,您可以去google之,这个方法占网络搜索结果的主流;

方法2—脚本流

事情终究不过是个大文件处理的问题,强大的bash来搞定;

使用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

注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径(原因暂保密)

 

方法3—猥琐流

打开bin目录下的catalina.sh文件,终究不过是个bash文件,

查找一下,catalina.out总共出现三次;

部分截图:

shift

touch "$CATALINA_BASE"/logs/catalina.out

if [ "$1" = "-security" ] ; then

    echo "Using Security Manager"

    shift

    "$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \

      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

      -Djava.security.manager \

      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \

      -Dcatalina.base="$CATALINA_BASE" \

      -Dcatalina.home="$CATALINA_HOME" \

      -Djava.io.tmpdir="$CATALINA_TMPDIR" \

      org.apache.catalina.startup.Bootstrap "$@" start \

      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

      if [ ! -z "$CATALINA_PID" ]; then

        echo $! > $CATALINA_PID

      fi

else

    "$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \

      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

      -Dcatalina.base="$CATALINA_BASE" \

      -Dcatalina.home="$CATALINA_HOME" \

      -Djava.io.tmpdir="$CATALINA_TMPDIR" \

      org.apache.catalina.startup.Bootstrap "$@" start \

      >> "$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的服务;


本文转载自:http://blog.sina.com.cn/s/blog_70047f660100va5s.html

Carl_
粉丝 42
博文 387
码字总数 12168
作品 0
广州
私信 提问
加载中

评论(2)

Carl_
Carl_ 博主

引用来自“firesh”的评论

更好的办法:

http://blog.bo.run/2016/03/04/tomcat-catalina-out-space-issue/

好的,已拜读0非常感谢
f
firesh
更好的办法:

http://blog.bo.run/2016/03/04/tomcat-catalina-out-space-issue/
使用cronolog实现tomcat日志切割

背景: Tomcat的日志catalina.out在使用过程中会不断增长,当日志过大时,可能会对tomcat的性能产生影响。 使用日志切割的方法,可以有效解决日志过大的问题。它可以把日志按天进行切割存储,...

icenycmh
2016/10/14
0
0
Tomcat的catalina.out文件过大问题(logrotate方式)

问题 Tomcat在Cent OS上面的日志文件catalina.out达到了4G多。 解决 logrotate 创建配置文件 编写配置文件: 配置说明: :需要归档的日志路径 :复制截断模式 :每天触发一次 :最多7个日志文...

亚林瓜子
2018/09/27
430
2
切割 Tomcat 的 catalina.out 文件,解决日志文件过大的问题

Tomcat 下日志文件 catalina.out 过大,几百兆或几十个G,进而造成再也无法写入更多的日志内容,至使 Tomcat 无法处理请求。然后你可以在 $TOMCAT_HOME/logs 目录下看到文件 catalina.out 却...

Adairs
2016/03/10
432
0
Linux下tomcat的catalina.out文件过大,以及目录更改解决办法

方法1—分割流 使用cronolog工具切分Tomcat的catalina.out日志文件 cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。 推荐用此方法,方法...

Carl_
2014/08/28
8.1K
0
Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式

Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放,解决catalina.out日志文件过大问题 1. 准备jar包: log4j-1.2.17.jar (从 http://www.apache.org/dist/logging/log4j/1...

山哥
2014/03/06
21.8K
1

没有更多内容

加载失败,请刷新页面

加载更多

分页查询

一、配置 /*** @author beth* @data 2019-10-14 20:01*/@Configurationpublic class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor(){ ......

一个yuanbeth
24分钟前
2
0
在LINQPad中使用Ignite.NET

LINQPad是进行.NET开发的一款优秀工具,非常有利于Ignite.NET API的快速入门。 入门 下载LINQPad:linqpad.net/Download.aspx,注意要选择64位操作系统的AnyCPU版本; 安装Ignite.NET的NuGet...

李玉珏
38分钟前
4
0
JS其他类型值转化为Boolean类型规则

本文转载于:专业的前端网站➤JS其他类型值转化为Boolean类型规则 由于最近在笔试的时候,发现好多关于其他类型转化为Boolean类型的题目,因此总结一下! 一、String类型转化为Boolean 1.转化...

前端老手
49分钟前
5
0
EurekaClient自动装配及启动流程解析

在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码 老规矩,先看spring.factories文件,其中引入了一个配置类EurekaDiscoveryClie...

Java学习录
55分钟前
9
0
析构函数是否必须为虚函数?为何?

p517 在C++中,基类指针可以指向一个派生类的对象。如果基类的析构函数不是虚函数,当需要delete这个指向派生类的基类指针时,就只会调用基类的析构函数,而派生类的析构函数无法被调用。容易...

天王盖地虎626
55分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部