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中break与last的区别详析
Mar 31 Servers
Nginx配置https原理及实现过程详解
Mar 31 Servers
详解Apache SkyWalking 告警配置指南
Apr 22 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
Linux中文件的基本属性介绍
Jun 01 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 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
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php防止sql注入代码实例
2013/12/18 PHP
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
小学数学国培感言
2014/03/10 职场文书
法律六进活动方案
2014/03/13 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
文明家庭事迹材料
2014/12/20 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis