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前后端同域名配置的方法实现
Mar 31 Servers
nginx处理http请求实现过程解析
Mar 31 Servers
nginx简单配置多个server的方法
Mar 31 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
详解ZABBIX监控ESXI主机的问题
Jun 21 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
如何让你的Nginx支持分布式追踪详解
Jul 07 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
Aug 14 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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
简单易用的计数器(数据库)
2006/10/09 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python实例化对象的具体方法
2020/06/17 Python
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
《赠汪伦》教学反思
2014/04/12 职场文书
吨的认识教学反思
2014/04/27 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
课程设计感想范文
2015/08/11 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
深入理解go slice结构
2021/09/15 Golang