zoukankan      html  css  js  c++  java
  • 005-tomcat日志体系

    一、概述

      首先了解java的日志体系

      在JDK1.4后,sun公司增加了一个包为java.util.logging,简称为jul,用以对抗log4j。

      后续还有很多日志门面方案,但是tomcat使用了jul方式

    1.1、tomcat的日志体系

      1.JDK的实现【JUL】:

        由于JDK的内部,默认提供了关于Log的配置文件,文件位于:Javajre1.8liblogging.properties,

        而对比Tomcat的输出,我们的内容并没有输出到文件中。Log日志信息都输出到了Console中。

      2.tomcat的实现:

        tomcat默认使用JULI日志,也就是java自己的Log:java.util.logging.Logger。

        项目中我们可以使用log4j来打印自己的日志。tomcat打印自己的系统日志,log4j打印项目中的日志,两者是不冲突的,可以同时工作,也就是说tomcatlogs目录下的日志是由他们两个共同打印出来的

      3.tomcat默认使用JULI日志,如何验证呢:

        tomcat会加载conflogging.properties配置文件,在该配置文件中配置了java.util.logging.ConsoleHandler,使用的是java日志logging包下的类

        Tomcat中增加自定义的logger配置文件,这一过程是通过启动脚本catalina.sh(目录:apache-tomcat-8.5.31incatalina.bat)来实现的,所以我们可以编辑catalina.sh文件,有两个参数:LOGGING_CONFIG、LOGGING_MANAGER   

    # Set juli LogManager config file if it is present and an override has not been issued
    if [ -z "$LOGGING_CONFIG" ]; then
      if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
        LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
      else
        # Bugzilla 45585
        LOGGING_CONFIG="-Dnop"
      fi
    fi
    
    if [ -z "$LOGGING_MANAGER" ]; then
      LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
    fi

       即启动参数中包含两个-D参数 java.util.logging.config.file,java.util.logging.manager。

       4.Tomcat下默认的的配置文件:conflogging.properties中,同时指定了多个handlers,分别对应的是tomcatlogs目录

       5.Tomcat 日志信息分为两类 :

        一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 。
        二是访问日志信息,它记录的访问的时间,IP ,访问的资料等相关信息。

    默认 tomcat 不记录访问日志,如下方法可以使 tomcat 记录访问日志:
    编辑 catalina/conf/server.xml文件:
    注释掉<Valve className="org.apache.catalina.valves.AccessLogValve">之后,就看不到所有的请求参数了。
    //server.xml的每一个元素都对应了Tomcat中的一个组件
    AccessLogValve的作用是通过日志记录其所在的容器中处理的所有请求,记录的日志就是访问日志,每天的请求会写到一个日志文件里

    1.2、tomcat小结

      1.Tomcat内部的日志实现,是使用JULI,

        Tomcat使用的日志配置文件:$CATALINA_BASE/conf/logging.properties
        Tomcat日志管理类默认使用的是JULI:LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

      2.Tomcat下相关的日志文件 
        Cataline引擎的日志文件,文件名catalina.日期.log 
        注:{catalina} 是 tomcat 的安装目录

      3.Tomcat下Web应用程序可以使用如下3种日志: 
        使用JDK提供的日志java.util.logging.
        使用Java Servlets规范中定义的日志javax.servlet.ServletContext.log(...)
        使用其他日志框架,如log4j

      4.也可以使用界面来管理tomcat的项目,此时需要在tomcat-user.xml中进行配置,然后访问:http://localhost:8081/manager/html

    1.3、项目内部日志

      参看java的日志体系

    1.4、修改tomcat日志路径

    1.4.1、方式一、修改日志配置

      修改tomcat/conf下的logging.properties  

    1catalina.org.apache.juli.AsyncFileHandler.level = FINE
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
    
    2localhost.org.apache.juli.AsyncFileHandler.level = FINE
    2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
    
    3manager.org.apache.juli.AsyncFileHandler.level = FINE
    3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
    
    4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
    4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

      修改tomcat/bin/catalina.sh 

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

      重启,查看日志即可

    1.4.2、方式二、可以使用服务器环境变量   

      配置服务器的vm的环境变量

    export CATALINA_OUT=/export/Logs/

  • 相关阅读:
    【转】Python常见web系统返回码
    【转】暴力破解无线WiFi密码
    【转】Django继承AbstractUser新建User Model时出现auth.User.groups: (fields.E304)错误
    Python去除文件中的空格、Tab键和回车
    用filter求素数
    【转】Python读取PDF文档,输出内容
    【转】RPC简单介绍
    【转】Python3使用Django2.x的settings文件详解
    Python生成随机字符串
    Python之turtle画同心圆和棋盘
  • 原文地址:https://www.cnblogs.com/bjlhx/p/11124701.html
Copyright © 2011-2022 走看看