tomcat的catalina.out日志按自定义时间格式进行分割的操作方法


Posted in Servers onApril 02, 2022

默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,这里我采用cronolog来完成日志分割。

一、安装Cronolog

1.yum方式安装

# yum install cronolog

2.下载压缩包安装

1. 下载(最新版本)
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

2. 解压缩
tar zxvf cronolog-1.6.2.tar.gz
 
3. 进入安装目录
cd cronolog-1.6.2
4. 运行安装
./configure
make
make install
5. 查看是否安装成功
which cronolog
结果:/usr/local/sbin/cronolog  (这个是cronolog的安装路径,后面会用到)

二、修改Tomcat下bin/catalina.sh文件

修改要分隔的Tomcat的日志下bin/catalina.sh文件,要修改的在290行。修改前先拷贝一份。
1. cp catalina.sh catalina.sh.bak
2. vim catalina.sh -c 417  或者  vim catalina.sh之后:417    (进入到catalina.sh的第417行。)

下面为需要修改的内容:标红的是要修改的区域

tomcat的catalina.out日志按自定义时间格式进行分割的操作方法

修改为:
  shift
  # touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -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 2>&1\
      | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
 
  else
  fi

tomcat的catalina.out日志按自定义时间格式进行分割的操作方法

修改后,重启Tomcat。可以看到更改已经生效。(看到catalina.out出现了catalina.2017-12-19.out等按照日期分类的输出文件说明配置成功)。

三、shell利用crontab自动清除日志

1.删除文件shell命令详解

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
 
例子:
    find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
 
说明:将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
    find:linux的查找命令,用户查找指定条件的文件;
    /opt/soft/log/:想要进行清理的任意目录;
    -mtime:标准语句写法;
    +30:查找30天前的文件,这里用数字代表天数;
    "*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
    -exec:固定写法;
    rm -rf:强制删除文件,包括目录;
    {} \; :固定写法,一对大括号+空格+\+;

2.创建shell脚本即crontab计划任务

# vim del-15-days-ago-logs.sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
# chmod +x del-15-days-ago-logs.sh
# crontab -e
10 0 * * * /opt/soft/log/del-15-days-ago-logs.sh >/dev/null 2>&1

到此这篇关于tomcat的catalina.out日志按自定义时间格式进行分割的文章就介绍到这了,更多相关tomcat的catalina.out日志内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
解决Nginx 配置 proxy_pass 后 返回404问题
Mar 31 Servers
Nginx开启Brotli压缩算法实现过程详解
Mar 31 Servers
Nginx本地目录映射实现代码实例
Mar 31 Servers
Apache POI的基本使用详解
Nov 07 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
图文详解nginx日志切割的实现
Jan 18 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
Feb 12 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 Servers
为Centos安装指定版本的Docker
Apr 01 #Servers
Dashboard管理Kubernetes集群与API访问配置
Kubernetes中Deployment的升级与回滚
Apr 01 #Servers
了解Kubernetes中的Service和Endpoint
Kubernetes控制节点的部署
Apr 01 #Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 #Servers
iSCSI服务器CHAP双向认证配置
Apr 01 #Servers
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
Numpy数组的保存与读取方法
2018/04/04 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
信息工作经验交流材料
2014/05/28 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
SSM VUE Axios详解
2021/10/05 Vue.js
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis