Tomcat的网站上的说法http://wiki.apache.org/tomcat/FAQ/Logging#Q6:

System.out 和 System.err 都被打印到 catalina.out。

catalina.out 不会 rotate。

如果您使用了 logging 机制,就不会有任何东西被写到标准输出了,所以这应该不会是个问题。

可是实际上发现,虽然有设了log4j之类的 logging 机制,但写程序的人如果还是写成System.out.println()或是遇到exception时都来个e.printStackTrace(),这些输出最后还是通通送到catalina.out去了。日子久了,这个档案还是会日渐变大起来,如果没有加以管理最后就会长大成好几GB的庞然大物。(这时千万不要再用vi去开它了。)

网络上找了一下,针对在Linux环境下执行Tomcat的部份,发现有个不错的工具软件cronolog可以协助Web Server之类的做 log 檔的 rotate,详细的运作原理可能大家得自己去这个网站上查,我的认知大致如下:

Tomcat先把输出写到 console(标准输出) 然后透过 pipe (|) 转为 cronolog 的输入,由cronolog针对一个事先给定的文件名的命名规则,去过滤数据,定期关闭旧文件,然后再开启新档。如果我们将文件名的命名规则设为catalina.out.%Y-%m-%d,就可以做到每天开一个新的catalina.out.yyyy-mm-dd的档案了。

以下是简单的过程说明:
1.安装cronolog 
2.修改catalina.sh 
3.重新启动Tomcat

1 安装cronolog 
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
用which cronolog可以查到安装的路径,默认应该是/usr/local/sbin/cronolog,这个路径待会在修改catalina.sh时会用到。
2 修改catalina.sh 
Tomcat 6.0.24的版本为例
2.1 第一步

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
修改为
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi
2.2 第二步

touch "$CATALINA_OUT"
改为
#touch "$CATALINA_OUT"
2.3 第三步

org.apache.catalina.startup.Bootstrap "$@" start /
>> "$CATALINA_OUT" 2>&1 &
修改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 /
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
2.4 重新启动Tomcat 
service tomcat restart 
可以在Tomcat的logs目录底下找到以系统日期为结尾的catalina.out.yyyy-mm-dd的档案,这样子就成功了。
后续就是持续观察看看是不是每天都有产生一个新的catalina.out.yyyy-mm-dd档案。然后再安排定期删除这些较旧的log檔即可。

另一个解决方案:

http://rwl6813021.iteye.com/blog/752416

一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 
可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。

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

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

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

【Tomcat】解决Tomcat catalina.out 不断成长导致档案过大的问题的更多相关文章

  1. 解决Tomcat catalina.out 不断成长导致档案过大的问题

    Tomcat的网站上的说法http://wiki.apache.org/tomcat/FAQ/Logging#Q6: System.out 和 System.err 都被打印到 catalina.ou ...

  2. event.preventDefault() 解决按钮多次点击 导致页面变大

    event.preventDefault() 解决按钮多次点击 导致页面变大

  3. Tomcat:解决Tomcat可以在eclipse启动,却无法显示默认页面的操作

    解决Tomcat可以在eclipse启动,却无法显示默认页面的操作 今天在eclipse中配置好tomcat后访问不到它的主页,但是能运行自己的项目,一直找不到原因,百度之后最后解决了这个问题,总结如 ...

  4. docker容器下tomcat 不向catalina.out输出日志解决以及支持中文字符集

    docker容器下tomcat 不向catalina.out输出日志解决 去掉 & 符号,直接 使用 ENTRYPOINT ["/data/tomcat/bin/startup.sh ...

  5. tomcat抬头有“选择”或“选定”,导致tomcat无法运行问题

    2. 遇到tomcat抬头有"选择"或"选定",导致tomcat无法运行问题 解决:在tomcat抬头右键--属性,去掉"快速编辑模式"勾选 ...

  6. centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法

    centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...

  7. RfcConfig 类 主要解决Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986

    tomcat 8.0以后对请求URL做了严格的过滤 就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z).数字(0-9).-_.~4 ...

  8. 转:解决tomcat服务器跨域问题

    原文地址: 解决tomcat服务器跨域请求问题 注:还未测试 在tomcat 的web.xml 配置文件中加入如下配置过滤器 (如web.xml中有多个filter时要把下面配置放在最前端) < ...

  9. 解决:Tomcat 局域网IP地址 访问不了

    解决:Tomcat 局域网IP地址 访问不了 2014年10月17日 ⁄ 综合 ⁄ 共 1000字 ⁄ 字号 小 中 大 ⁄ 评论关闭 如果连最基本的localhost:8080都失败的话. 原因就一 ...

随机推荐

  1. Solr版本安装部署指南

    一.依赖包 1.  JDK 1.6以上 2.  solr-4.3.0.tgz 3.  Tomcat或者jetty(注意,solr包中本身就含有jetty的启动相关内容):apache-tomcat-7 ...

  2. WPF中单选框RadioButton

    单选框RadioButton的基本使用: <StackPanel Margin="10"> <Label FontWeight="Bold"& ...

  3. python在d盘,robotframework引入seleniumlibrary报错

    在*** setting*** 中引入库   Library  SeleniumLibrary  报错 unknown seleniumlibrary library ,try to use quic ...

  4. 前端知识点总结——HTML

    HTML:HTML4.01 指的就是网页技术HTML5:HTML4.01的升级版本 1.web的基础知识 web与Internet1.Internet:全球性的计算机互联网络,因特网,互联网,交互网2 ...

  5. Robot Framework(十二) 执行测试用例——配置执行

    3.4配置执行 本节介绍可用于配置测试执行或后处理输出的不同命令行选项.与生成的输出文件相关的选项将在下一节中讨论. 3.4.1选择测试用例 通过测试套件和测试用例名称 按标签名称 当没有测试匹配选择 ...

  6. CSS 文本下划线 text-decoration

      定义和用法 text-decoration 属性规定添加到文本的修饰. 可能的值 值 描述 none 默认.定义标准的文本. underline 定义文本下的一条线. overline 定义文本上 ...

  7. Python爬虫环境常用库安装

    1:urllib urllib.request这两个库是python自带的库,不需要重新安装,在python中输入如下代码: import urllibimport urllib.requestres ...

  8. (6)zabbix主机与组配置

    1. 创建主机方法 1.1 新建主机configuration(配置)->Hosts(主机)->Create host(创建主机) 见前面的博文 1.2 克隆/完全克隆主机 2. 主机参数 ...

  9. Python赋值运算及流程控制

    1. 内置函数 1> len:统计元素长度 str1 = 'wonderful' print(len(str1)) result: li = [,,] print(len(li)) result ...

  10. 微信小程序登录对接Django后端实现JWT方式验证登录

    先上效果图 点击授权按钮后可以显示部分资料和头像,点击修改资料可以修改部分资料. 流程 1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3. ...