设为首页 收藏本站
查看: 338|回复: 0

[经验分享] tomcat的catalina.out文件

[复制链接]

尚未签到

发表于 2017-1-21 08:55:00 | 显示全部楼层 |阅读模式
方法1—分割流
使用cronolog工具切分Tomcat的catalina.out日志文件
cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。
1.下载cronolog-1.6.2.tar.gz
2、解压缩 
    # tar zxvf cronolog-1.6.2.tar.gz 
3、进入cronolog安装文件所在目录 
    # cd cronolog-1.6.2 
4、运行安装 
    # ./configure 
    # make 
    # make install 
5、查看cronolog安装后所在目录(验证安装是否成功) 
    # which cronolog 
一般情况下显示为:/usr/local/sbin/cronolog 

要想分割tomcat的catalina.out,需作如下工作: 
首先需要对catalina.sh文件进行备份
修改tomcat bin目录下的catalina.sh文件中的

  • org.apache.catalina.startup.Bootstrap “$@” start  \ 
  • >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &  


  • org.apache.catalina.startup.Bootstrap "$@" start  2>&1 \ 
  •     | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &  

同时,文件中有一行

  • touch “$CATALINA_BASE”/logs/catalina.out  

可以注释掉,完成之后重起Tomcat就可以了, 
看logs文件中是否有catalina.2009-07-01.out样式的日志。
方法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的服务;

 
方法5-使用log4j分割
  1) tomcat6.0下的log4j日志文件 配置过程
  首先下载两个文件,如我的tomcat版本是v6.0.24
  http://www.apache.org/dist/tomcat/tomcat-6/v6.0.24/bin/extras/tomcat-juli-adapters.jar
http://www.apache.org/dist/tomcat/tomcat-6/v6.0.24/bin/extras/tomcat-juli.jar
  按照我写的目录结构来放置。
tomcat6-------lib
                |       |--------tomcat-juli-adapters.jar
                |       |--------log4j.jar
                |       |--------log4j.properites
                | 
                |----bin
                         |--------tomcat-juli.jar
最后把log4j.properties里的配置写好就可以了。
  如:
######################################################################
  # 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout
  # 设定stdout控制台 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} /"%m/"%n
  # 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=${catalina.home}/logs/projectLogs.log
log4j.appender.file.MaxFileSize=1024KB
  # 设定制定的file使用的PatternLayout. 
# 有关ConversionPattern中的转意字符的含义参考说明 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
######################################################################
  2)tomcat5.5 下的log4j日志文件 配置过程
  log4j.properties放在%CATALINA_HOME%/conf/common/classes下
  # 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout
  # 设定stdout控制台 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} /"%m/"%n
  # 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=${catalina.home}/logs/bugmgrsys.log
log4j.appender.file.MaxFileSize=1024KB
  # 设定制定的file使用的PatternLayout. 
# 有关ConversionPattern中的转意字符的含义参考说明 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
  log4j.jar放于%CATALINA_HOME%/common/lib下
  高级篇:
  查了很多人写的资料如果要产生bugmgrsys_2008_05_09.log文件是可能的。不过,注意了是不过,
  不过这个文件也只有05月09号过去了这个文件才会产生,而当天的文件是bugmgrsys
  为什么会这样呢,不妨碍来看看配置文件吧。我是在上述文件上改的 = =
  # 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout
  # 设定stdout控制台 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} /"%m/"%n
  # 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。 
#log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.File=${catalina.home}/logs/bugmgrsys
#log4j.appender.file.MaxFileSize=1024KB
  # 设定制定的file使用的PatternLayout. 
# 有关ConversionPattern中的转意字符的含义参考说明 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
#log4j.appender.file.layout.ConversionPattern=%d %-5p [%t] %C{2} (%F:%L) - %m%n

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-331374-1-1.html 上篇帖子: jboss 和tomcat区别 下篇帖子: Tomcat-配置及原理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表