首页 > 其他分享 >Tomcat WEB服务器日志切割

Tomcat WEB服务器日志切割

时间:2022-12-30 16:06:19浏览次数:41  
标签:WEB CATALINA Tomcat .. NAME -- 日志 OUT cronolog

cronolog 简介

cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间。当扩展文件名的变化,目前的文件是关闭,新开辟的。cronolog 旨在和一个Web服务器一起使用,如Apache、tomcat,分割访问日志为每天或每月的日志。

系统环境:Centos 7.4.1708

JDK:1.8.0_181

Tomcat:tomcat-8.5.13

cronolog 工具

cronolog 安装(这里采用yum安装,也可以选择源码安装)

[root@localhost ~]# yum -y install epel-release

[root@localhost ~]# yum -y install cronolog

cronolog 使用

[root@localhost ~]# cronolog -h

  1. usage: cronolog [OPTIONS] logfile-spec
  2. -H NAME, --hardlink=NAME maintain a hard link from NAME to current log
  3. -S NAME, --symlink=NAME maintain a symbolic link from NAME to current log
  4. -P NAME, --prev-symlink=NAME maintain a symbolic link from NAME to previous log
  5. -l NAME, --link=NAME same as -S/--symlink
  6. -h, --help print this help, then exit
  7. -p PERIOD, --period=PERIOD set the rotation period explicitly
  8. -d DELAY, --delay=DELAY set the rotation period delay
  9. -o, --once-only create single output log from template (not rotated)
  10. -x FILE, --debug=FILE write debug messages to FILE
  11. ( or to standard error if FILE is "-")
  12. -a, --american American date formats
  13. -e, --european European date formats (default)
  14. -s, --start-time=TIME starting time
  15. -z TZ, --time-zone=TZ use TZ for timezone
  16. -V, --version print version number, then exit

cronolog 一般是采取管道的方式来工作的,采用如下的形式:

[root@localhost ~]# loggenerator | cronolog log_file_pattern

其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入cronolog所支持的时间相关的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern为%字符后跟一特殊字符,简述如下:

转义符: 

%   %字符

n    换行

t    水平制表符

时间域:

H   小时(00..23)

I    小时(01..12)

p   该locale下的AM或PM标识

M  分钟(00..59)

S    秒 (00..61, which allows for leap seconds)

X    该locale下时间表示符(e.g.:"15:12:47")

Z    时区。若时区不能确定,则无意义

日期域:  

a    该locale下的工作日简名(e.g.: Sun..Sat)

A   该locale下的工作日全名(e.g.: Sunday ..  Satur-ay)

b   该locale下的月份简称(e.g.: Jan .. Dec)

B   该locale下的月份全称(e.g.:  January .. December)

c   该locale下的日期和时间(e.g.:"Sun Dec 15  14:12:47 GMT 1996")

d  当月中的天数 (01 .. 31)

j   当年中的天数 (001 .. 366)

m    月数 (01 .. 12)

U    当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)

W   当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)

w    工作日数(0 .. 6, 0表示星期天)

x     该locale下的日期表示(e.g."13/04/97")

y     两位数的年份(00 .. 99)

Y    四位数的年份(1970 .. 2038)

用cronolog分割tomcat的catalina.out文件 

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

[root@localhost ~]# which cronolog

/sbin/cronolog

2)编辑tomcat目录bin下的catalina.sh文件

找到下面这行,类似这样的行有2处:

org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 &

第一处:tomcat是带"-security"参数的启动,

第二处:默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。

另外还要把touch "$CATALINA_OUT"这行注释掉。

  1. if [ -z "$CATALINA_OUT" ];then
  2. CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
  3. fi

修改为

  1. if [ -z "$CATALINA_OUT" ];then
  2. CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.`date +%Y-%m-%d`
  3. fi

找到446行,修改如下

#touch "$CATALINA_OUT"

  1. if [ "$1" = "-security" ];then
  2. if [ $have_tty -eq 1 ];then
  3. echo "Using Security Manager"
  4. fi
  5. shift
  6. eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
  7. -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
  8. -classpath "\"$CLASSPATH\"" \
  9. -Djava.security.manager \
  10. -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
  11. -Dcatalina.base="\"$CATALINA_BASE\"" \
  12. -Dcatalina.home="\"$CATALINA_HOME\"" \
  13. -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
  14. org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /sbin/cronolog "$CATALINA_OUT" >> /dev/null &
  15. #>> "$CATALINA_OUT" 2>&1 "&"
  16. else
  17. eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
  18. -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
  19. -classpath "\"$CLASSPATH\"" \
  20. -Dcatalina.base="\"$CATALINA_BASE\"" \
  21. -Dcatalina.home="\"$CATALINA_HOME\"" \
  22. -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
  23. org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /sbin/cronolog "$CATALINA_OUT" >> /dev/null &
  24. #>> "$CATALINA_OUT" 2>&1 "&"
  25. fi

保存退出~~

3)重启tomcat服务

[root@localhost bin]# pwd

/usr/local/tomcat/bin

[root@localhost bin]# ./shutdown.sh

[root@localhost bin]# ./startup.sh

[root@localhost bin]# cd ../logs/

[root@localhost logs]# ll

Tomcat WEB服务器日志切割_tomcat

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

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

标签:WEB,CATALINA,Tomcat,..,NAME,--,日志,OUT,cronolog
From: https://blog.51cto.com/u_12018693/5980566

相关文章

  • Tomcat 8.x基于Redis Session会话保持
    什么是Redis?Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。一、与其他用户状态保存方案比较一般开......
  • websocket demo
    js====>nodewstest.jsvarws=require('nodejs-websocket');constPORT=3000;varserver=ws.createServer((conn)=>{console.log("链接成功");conn......
  • Spring MVC的web.xml配置详解
    SpringMVC是创建javaweb项目时比较常用的框架,其中web.xml配置文件是更不可少的,那么首先先了解javaweb中的web.xml文件。一、认识web.xml文件1、web.xml的作用首先java......
  • .net6 webApi IoC SqlSugar的日常使用
    .Net6WebApi使用SqlSugar1、Nuget先引入:SqlSugarCore2、NetIOC1、注入ISqlSugarClient.NET自带的IOC使用也很方便 先封装一个操作类  //建一个扩展类publ......
  • MyBatis日志工厂
    目录日志工厂标准日志实现Log4j使用步骤:日志工厂我们在测试SQL的时候,要是能够在控制台输出SQL的话,是不是就能够有更快的排错效率?如果一个数据库相关的操作出现了问题......
  • Appscan扫描的web网站有验证码导致登录失败,解决方式:使用固定的cookie、token值进行登
    Appscan扫描的web网站有验证码导致登录失败,解决方式:使用固定的cookie、token值进行登录扫描 步骤:1、登录方式选择‘无’  2、添加cookie方式一:  2)cookie名在......
  • python的web应用程序开发(Django框架)
    python的web应用程序开发(Django框架)1.安装Django并开启网页服务器pipinstalldjango#安装Django包django-adminstartprojectmysite#在指定路径下新建一个mysite文件......
  • 理解iOS端的WebView同层组件
    理解iOS端的WebView同层组件一起始同层渲染是利用原生技术来优化Web渲染一种技术,很多人了解它是起于微信开放社区发布的一篇关于小程序渲染原理剖析的文章。我将链接附上......
  • 手把手的SpringBoot教程,SpringBoot创建web项目(三)
    这节课,我们来学习一下SpringBoot的环境配置,在SpringBoot中,所有的配置都写在application.properties中:我们启动项目,默认端口是8080,我们现在给他配置一个8088:server.port=808......
  • 开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数
    WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。之所以如此流行,主要是因为WebService/Restful采用了XML/Json这类多层结构化数据进行......