一、概述

  首先了解java的日志体系

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

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

1.1、tomcat的日志体系

  1.JDK的实现【JUL】:

    由于JDK的内部,默认提供了关于Log的配置文件,文件位于:Java\jre1.8\lib\logging.properties,

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

  2.tomcat的实现:

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

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

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

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

    Tomcat中增加自定义的logger配置文件,这一过程是通过启动脚本catalina.sh(目录:apache-tomcat-8.5.31\bin\catalina.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下默认的的配置文件:conf\logging.properties中,同时指定了多个handlers,分别对应的是tomcat\logs目录

  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/

005-tomcat日志体系的更多相关文章

  1. java 日志体系(三)log4j从入门到详解

    java 日志体系(三)log4j从入门到详解 一.Log4j 简介 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代 ...

  2. ELK 收集 Tomcat日志以及修改Tomcat日志格式

    ELK 收集 Tomcat日志以及修改Tomcat日志格式 Tomcat日志 想要收集tomcat 日志 首先我们要对tomcat的日志有足够的了解 tomca日志分类 简单的说tomcat logs ...

  3. CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法

    CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...

  4. Tomcat 日志清除(含扩展AccessLogValve)

    1.tomcat的访问日志AccessLogs定期或者定量删除 a 开启tomcat访问日志 编辑${catalina}/conf/server.xml文件.注:${catalina}是tomcat的 ...

  5. 自定义日志阅读器——包括了一个load取Tomcat日志的分析器

    最近在写往公司产品里添加Tomcat适配器,以支持Tomcat.有一些功能需要摘取到Tomcat的部分日志.没有合适的工具,也不想去网上找了,就自己写了一个. 简单的画了一下设计方案: 下面直接上代码 ...

  6. Oracle RAC的日志体系

    Oracle Clusterware 不像数据库那样,有丰富的视图.工具可以用来辅助诊断,它的日志和trace文件是唯一的选择.但不像Oracle只有alert日志和几种trace文件,Oracle ...

  7. linux下重启tomcat,日志查看

    版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 一:关闭tomcat 1.使用cd命令以及常用的tab补全命令进入到tomcat bin所在的目录(可以不用到此目录也行,楼主 ...

  8. logstash配合filebeat监控tomcat日志

    环境:logstash版本:5.0.1&&filebeat 5.0.1 ABC为三台服务器.保证彼此tcp能够相互连接. Index服务器A - 接收BC两台服务器的tomcat日志 ...

  9. Oracle RAC环境的日志体系

    转摘:http://blog.itpub.net/22664653/viewspace-722463/ 在Oracle RAC环境中比单个系统的日志体系要复杂:见下图: 简单介绍一下有关Oracle集 ...

随机推荐

  1. 剑指Offer(三十):连续子数组的最大和

    .# 剑指Offer(三十):连续子数组的最大和 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...

  2. Java对象内存分配原理与布局

    当一个对象被创建了,那在JVM中是如何的从一个对象不存在到存到,然后将对象存放在什么地方呢?这次主要来探讨一下Java对象创建的过程. new关键字创建对象的3个步骤: 1.在堆内存中创建出对象的实例 ...

  3. 第七届蓝桥杯C/C++程序设计本科B组决赛 ——棋子换位(代码补全题)

    棋子换位 有n个棋子A,n个棋子B,在棋盘上排成一行.它们中间隔着一个空位,用“.”表示,比如: AAA.BBB 现在需要所有的A棋子和B棋子交换位置.移动棋子的规则是:1. A棋子只能往右边移动,B ...

  4. P2882 [USACO07MAR]Face The Right Way [贪心+模拟]

    题目描述 N头牛排成一列1<=N<=5000.每头牛或者向前或者向后.为了让所有牛都 面向前方,农夫每次可以将K头连续的牛转向1<=K<=N,求操作的最少 次数M和对应的最小K ...

  5. Destoon二开必看执行流程

    <?php 代码首先包含common.inc.php文件 在common.inc.php文件中,首先定义常量. define('IN_DESTOON', true); define('IN_AD ...

  6. mali tbr Forward Pixel Kill

    https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66 ...

  7. PHP怎么实现字符串转义和还原?

    首先大家可以简单了解下什么是转义字符?有什么用? 转义字符是一种特殊的字符常量.转义字符以反斜线"\"开头,后跟一个或几个字符.转义字符具有特定的含义,不同于字符原有的意义,故称“ ...

  8. 后台(一)vue+element-ui (按需加载)

    vue init webpack    项目名称 npm install axios                    //先安装! npm install --save axios vue-ax ...

  9. List<Map<String, Obejct>>遍历

    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map&l ...

  10. RESOURCE SUMMARY

    I dont know where to start so searched the net and get a lot of free videos, my plan is to watch the ...