tomcat截取日志_Tomcat的日志分割三种方法

一、Tomcat的日志分割三种方法

一、方法一:用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./configuremake && make install

2、查看cronolog安装后所在目录(验证安装是否成功)

whichcronolog

一般情况下显示为:/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

查看日志目录是否生成catalina.yymmdd.out的日志文件

-rw-r--r-- 1 root root 10537 Jul 30 10:50 catalina.20140730.out

配置cronolog完成了,观察每天是否有一个新的catalina.yymmdd.out的日志文件生成,定期删除日期较旧的日志文件。

二、方法二:使用log4j成功使catalina.out文件实现分割

1、在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/

cpcatalina.out catalina.out.${d}echo "" >catalina.outrm -rf catalina.out.${d7}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java ee 下版本_将旧版本从Java EE 5减少到7

java ee 下版本Java EE 5于2005年首次引入,而Java EE 7于2013年问世。这两个版本之间存在7年的差距,从技术角度来说,这就像一个世纪。 许多组织仍然对使用Java EE 5感到困惑,并且有很多正当的理由选择不升级。 不过,如…

哪款 Linux 才是更好的 CentOS 替代品?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删AlmaLinux 是基于 RHEL 的企业级 Linux 发行版。以下是选择 AlmaLinux 作为 CentOS 替代方案的一些原因。CentOS 将于 2024 年 6 月到期。截至 2…

android uinput 按键_android 使用uinput模拟输入设备的方法

在google remote中,android接收端接收socket发来的IR CODE,然后将IR CODE模拟出来发给系统处理,这就是google remote接收端的原理。系统端怎样模拟input event呢?方法一:通过Instrumentation.sendKeyDownUpSync 实现&a…

绩效从C到S,分享渣渣程序员逆袭秘诀!

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删绩效面谈结束,从会议室出来,有一种不真实的感觉——这个季度我竟然拿了S?!要知道,上个…

海贼王为什么画风突变_什么是突变测试?

海贼王为什么画风突变最近,我再三提到突变测试一词。 因为可以说这种方法能够以超出代码覆盖范围的方式检测测试安全网的空白,所以我花了一些时间来追赶这个话题并尝试一下。 这篇文章总结了我的发现,作为对该主题的快速介绍。 什么是变异测…

C语言 #define 与 typedef 的区别与用法

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删在C语言编程中,typedef 和 #define是最常用语句,可能很多工作过几年的工程师都没有去深究过它们的一些用法和区别。typed…

spring总结_Spring综合课程总结

spring总结本文是我们名为“ EAI的Spring集成 ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适…

合工大850参考书_合肥工业大学计算机考研850上岸经验分享

转载于 王道论坛 原作者 欲把西湖比西子 链接经验杂谈专业课考研,我个人认为主要还是考察基本的概念,以教材为主,教材就是圣经。不可否认,教材是枯燥的,尤其像数据结构这样的课程,比较抽象,就算…

硬核!400 行代码实现一个虚拟机

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删我们都知道理工科类的大学专业,一般都会在大一选择教授 C 语言作为编程入门语言,我最初接触编程也是入的 C 语言的坑。课…

23种设计模式简介_设计模式简介

23种设计模式简介本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 &am…

python实现api接口的脚本_Zabbix批量添加主机,Python调用api接口方式【脚本定制】...

使用说明:此脚本使用方法,详细步骤如下(不清楚的可以加我微信或QQ咨询)脚本默认添加内容如excel模板所示:主机名、显示名、IP地址、所属组、所属模板1、所属模板2(如需要添加其他内容如: 多个所属组、多个模板、DNS、SNMP等,可联系…

Spring集成基础知识

本文是我们名为“ EAI的Spring集成 ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适配器。 在这…

C++最佳实践 | 工具

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删前言C最佳实践: 支持Fork的编码标准文档本文档旨在收集对C最佳实践所进行的协作性讨论,是《Effective C》(Meyers) 和《C Coding Sta…

python resize_Python resize

最新项目flask扩展,用于自动调整代码中图像的大小,以及模板。可以从JPEG PNG SVG转换为JPEG PNG,调整大小以适应和裁剪。提供基于文件和基于s3的存储选项。有关文档,请参见https: ...2020-12-22已阅读: n次django resizer允许动态…

C语言函数返回 1 和返回 0 哪个好?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删基本上,没有人会将大段的C语言代码全部塞入 main() 函数。更好的做法是按照复用率高、耦合性低的原则,尽可能的将代码拆分…

抽象工厂和工厂方法示例_抽象工厂设计模式示例

抽象工厂和工厂方法示例本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查…

人脸识别像素最低_一种低分辨率图像的人脸识别方法与流程

本发明涉及计算机视觉技术领域,更具体地,涉及一种低分辨率图像的人脸识别方法。背景技术:目前最常用的人脸识别算法是基于卷积神经网络(Convolutional Neural Network,CNN)的,CNN由一系列的卷积操作组成,如…

史上最污技术解读,我竟然秒懂了

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时…

textureview 缩放_View的双指缩放以及移动

最近做项目,做到了要让视频缩放的功能,所以写了一个小DEMO,进行双指手势的操作,DEMO是使用TextView做测试,实际使用监听放在TextureView也是正常运行。首先就是记录下触摸屏幕的手指数量,一个手指触摸的时候…

tdd java_Java TDD简介–第1部分

tdd java欢迎来到测试驱动开发 (TDD)系列的介绍。 我们将在TDD上下文中讨论Java和JUnit ,但这只是工具。 本文的主要目的是使您全面了解TDD,而无论使用哪种编程语言和测试框架。 如果您在项目中不使用TDD,那么您要么是…