tomcat日志研究

    tomcat日志简介

    tomcat服务器的日志:

        catalina.2017-08-03.log,服务器启动日志

        host-manager.2017-08-03.log,虚拟主机管理日志

        localhost.2017-08-03.log,

        manager.2017-08-03.log,

      补充:

        localhost_access_log.2017-08-03.txt,http访问日志,配置在server.xml中Host元素里配置,详情请看server.xml

   

    tomcat服务器中webapp应用日志:

        此日志,由application自行决定。第三方日志框架,或java日志框架。tomcat服务器对此不作要求。例如上图中的 sales-web.2017-08-03_11.log 以及 ACCESS_LOG_2017-08-03_08.log


    tomcat服务器的catalina.out日志:

        此日志在catalina.sh脚本中设置。属于操作系统的标准输出流、错误输出流中的内容,由此段shell决定

    tomcat日志简介


    开发时,可能由于各种原因没注意,将application的日志直接输出到控制台,导致catalina.out文件越来越大,需要分割

    1. 完美分割方法,cronolog

     原理:此方法,最终是拦截标注输出流、错误输出流产生的,按表达式%Y-%m-%d创建接收文件。经笔者验证是可行的,此方法可将tomcat日志与应用程序日志统一处理,只需要将应用程序日志定为到标准输出

    安装cronolog

    修改catalina.sh文件

    if [ -z "$CATALINA_OUT" ] ; then

     CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

    fi

    修改为

    if [ -z "$CATALINA_OUT" ] ; then

     CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d

    fi

    将touch "$CATALINA_OUT"

    改为#touch "$CATALINA_OUT"

    将org.apache.catalina.startup.Bootstrap "[email protected]" start \>> "$CATALINA_OUT"   2>&1 &

    修改为org.apache.catalina.startup.Bootstrap "[email protected]" start 2>&1 \| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

    完成之后重起Tomcat就可以了。

    隔天看logs文件中是否有catalina.out.2015-09-13样式的日志。

   

   2. log4j(logback)分割

    原理:根据各个不同版本的tomcat选择支撑jar包,通过把tomcat的默认日志框架,改为log4j(logback)框架,实际上,只能重定向tomcat的日志。应用程序日志,标准输出,错误输出拦截不到具体的可以看看tomcat官网的logging这个document

    具体操作,请百度

技术新手,有错误请指出

相关文章:

  • 2021-04-20
  • 2022-01-03
  • 2022-01-26
  • 2021-10-10
  • 2021-08-09
  • 2022-01-01
  • 2021-07-04
  • 2022-01-04
猜你喜欢
  • 2021-08-15
  • 2021-06-12
  • 2021-04-02
  • 2021-05-13
  • 2021-08-23
  • 2021-12-29
  • 2021-04-16
相关资源
相似解决方案