一、概述

  首先了解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. 使用Dell iDRAC服务器远程控制安装操作系统简要图解

    使用Dell iDRAC服务器远程控制安装操作系统简要图解 iDARC tools   iDRAC又称为Integrated Dell Remote Access Controller,也就是集成戴尔 ...

  2. idea中关闭当前文件快捷键

    一.idea中关闭当前文件快捷键 1.一般编辑器中关闭当前文件快捷键为ctrl+w 2.而idea中默认为Ctrl+F4 3.可以将其改为自己熟悉的键位. 4.settings——>keymap ...

  3. [NOI2013]快餐店 / CF835F Roads in the Kingdom (基环树)

    题意 一颗基环树,选一对点使得这两个点的最短距离最大. 题解 相当于找基环树的直径,但是这个直径不是最长链,是基环树上的最短距离. 然后不会做. 然后看了ljh_2000的博客. 然后会了. 这道题最 ...

  4. PHP sha1()函数

    <!DOCTYPE html> <html> <body> <?php $str = "dashu"; echo sha1($str); ...

  5. 数据结构实验之查找一:二叉排序树 (SDUT 3373)

    二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树. #include <stdio.h> #include <s ...

  6. Shiro + Redis集成思路

    首先,确保Spring配置完毕了. 集成Shiro 1.在pom.xml中追加依赖 <dependency> <groupId>org.apache.shiro</gro ...

  7. 在SpringMVC中操作Session、Request、Response对象

    示例 @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper user ...

  8. 10-5使用OpenType字体

    http://www.missyuan.com/viewthread.php?tid=350835&extra=&page=1 现在当我们通过Photoshop.Word或其他应用程序 ...

  9. CentOS7 升级Python2.x到3.x

    CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级.由于很多基本的命令.软件包都依赖旧版本,比如:yum.所以,在更新 Python 时 ...

  10. js 将网络图片格式转为base64 canvas 跨域

    function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width ...