一、用cronolog分割tomcat的catalina.out文件
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
2、查看cronolog安装后所在目录(验证安装是否成功)
which cronolog
一般情况下显示为:/usr/local/sbin/cronolog
3、编辑tomcat目录bin下的catalina.sh文件
找到下面这行,类似这样的行有2处:
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &
  第一处:tomcat是带“-security”参数的启动,
  第二处:默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。
  另外还要把touch “$CATALINA_OUT"这行注释掉。
# touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
"$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $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_OUT" 2>&1 &

else
"$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $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 2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/catalina.%Y%m%d.out >> /dev/null &
# >> "$CATALINA_OUT" 2>&1 &

fi
4、重启tomcat

二、使用log4j成功使catalina.out文件实现分割
在tomcat根目录下建立common/classes/log4j.properties,内容如下
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.newlog #设定日志文件名
log4j.appender.R.MaxFileSize=100KB #设定文件到100kb即分割
log4j.appender.R.MaxBackupIndex=10 #设定日志文件保留的序号数
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
2、在tomcat根目录下的common/lib下加入log4j.jar和commons-logging.jar
3、重新启动tomcat即可。
三、编写一个.sh文件,并放到tomcat下的bin目录,在cron中自动执行,shell脚本如下:
#!/bin/bash

cd `dirname $0`
d=`date +%Y%m%d`
d7=`date -d'7 day ago' +%Y%m%d`

cd ../logs/

cp catalina.out catalina.out.${d}
echo "" > catalina.out
rm -rf catalina.out.${d7}

四、在/etc/logrotate.d下新建文件。tomcat
编辑该文件,写入脚本。 vim /etc/logrotate.d/tomcat
/opt/tomcat/logs/catalina.out { # catalina.out日志路径
copytruncate # 复制清空
rotate 15 # 保留15份日志
nocompress # 不压缩日志
missingok # 日志不存在时不报错
size 100k # 超过100k就复制
}
说明:该脚本会随着cron.daily(系统自带定时器)每天执行一次,如果此时catalina.out文件大小超过100k, 就会复制一份catalina.out-yyyyMMdd出来,然后清空catalina.out文件
已验证,当size比较小时,与按日期拆分效果一致

转载于:https://www.cnblogs.com/cowshed/p/11397681.html

tomcat 日志拆分相关推荐

  1. java tomcat 日志分析工具_tomcat日志集中采集、分析与展示的几种方法

    大家在做分布式web系统的时候,比如那么多个tomcat,每天都会产生很多的日志(虽然已经按小时进行日志拆分了,但日志内容还是很大,vim查日志的时候很慢),而且那么多个tomcat,每个tomcat ...

  2. 6月27日任务 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 1. vim /usr/local/tomcat/conf/server.xml Co ...

  3. 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

    配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol=&quo ...

  4. linux日志按照时间切割,Linux下把tomcat日志按日期自动分割

    Linux中tomcat日志分割需要用到cronolog 附上cronolog-1.6.2.tar.gz 1. 安装cronolog tar –zxvf cronolog-1.6.2.tar.gz . ...

  5. 设置tomcat服务为80端口,tomcat虚拟主机,tomcat日志

    配置tomcat监听端口为80 vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol=" ...

  6. 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志

    2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 直接访问,使用默认的web服务,需要改动端口为80,如果不是80端口那么访问页面的时候 ...

  7. 配置Tomcat监听80端口配置Tomcat虚拟主机Tomcat日志

    2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 Tomcat默认监听8080.8005以及8009端口,日常进行浏览器访问时,需要输入 ...

  8. tomcat日志切割-logrotate

    Tomcat日志切割(logrotate) logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储.邮件和压缩等,并且默认logrotate加到cron(/etc/cro ...

  9. 使用logrotate分割tomcat日志

    #使用logrotate分割tomcat日志 #添加tomcat文件在logrotate.d目录下: [root@localhost logrotate.d]# cat /etc/logrotate. ...

  10. 解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

    解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码 方法 1 方法 2(不推荐) 笔者的环境: JDK 13.0.2 Maven 3.6.3 Tomcat 9.0.41(Se ...

最新文章

  1. seq2seq(1)- EncoderDecoder架构
  2. 02 小程序入门实战
  3. java android下载文件_Android 下载文件(jsp做的服务器上)下载下来和源文件大小不一...
  4. 非计算机专业学习计算机
  5. backtrader指标
  6. ElasticSearch里面关于日期的存储方式,解决差8个小时
  7. mysql8.0.20 64位安装教程_MySQL8.0.20压缩版本安装教程图文详解
  8. drupal 迁移_关于如何迁移到Drupal的4个技巧
  9. 64匹马,8个赛道,通过比赛,决出前四名。
  10. INT 21H 指令说明及使用方法
  11. 关于清除丢失贴图与IES文件
  12. donet使用linq
  13. 汇编/源操作数/目的操作数
  14. 使用 C++ 开发出 【飞机大战】
  15. 微信分享到朋友圈的链接没有图片。开发工具中正常没有报错-解决方案
  16. 中国音乐史记•黄家驹列传
  17. 2022年618机顶盒哪款好?当贝盒子功能最全性价比更优
  18. apache的HttpClient的默认重试机制
  19. iPhone上Siri无法正常回应如何解决?
  20. autocad不能画图_说说基本的画图软件—AutoCAD(一)

热门文章

  1. 网上申请办理杭州市民卡
  2. 学会这10种定时任务,我有点飘了
  3. Beer Mugs(思维)
  4. java实现12306查票_java爬取12306查询余票的操作
  5. 计算机显卡升级不符,电脑升级之显卡篇:电脑显卡也有升级需要,但显卡不匹配也用不了...
  6. 好用免费的FTP软件工具推荐,支持中文 速来领取
  7. 免费ftp上传工具,三款免费的ftp上传工具
  8. php获取银行logo,PHP实现根据银行卡号判断银行
  9. Tools-06 WinDbg快速入门使用——查找蓝屏原因,解决蓝屏!
  10. 网站被黑(BUGKU)