1、tomcat的日志分类:
一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 。
二是访问日志信息,它记录的访问的时间,IP ,访问的资料等相关信息。
2、tomcat的日志目录(./tomcat/logs):
1.catalina.2017-09-22.log: catalina引擎的日志文件
2.host-manager.2017-09-22.log: 虚拟机主机日志文件
3.localhost.2017-09-22.log: Tomcat下内部代码丢出的日志,jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件! 4.manager.2017-09-22.log: Tomcat下默认的manager应用日志
5.localhost_access_log.2017-09-22.log:客户端访问日志(默认没有开启的access日志)
3、tomcat日志配置:(日志的路径可以在logging.properties中修改,以免倒导致硬盘过度的增大影响服务器的正常运行.)
1.host-manager.log、localhost.log、manager.log、catalina.log的日志控制
1、找到tomcat目录conf/logging.properties中的等级全都等于OFF.即可不再生成相关日志文件.
tomcat的日志级别分为以下: SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value) 除此之外,我们可以使用OFF关闭相关日志,使用ALL输出所有级别的日志 manager.org.apache.juli.FileHandler.level = OFF把manager日志关闭
2、其中catalina.out则需要修改catalina.sh配置可以控制
只要将 if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out 修改为 if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT=/dev/null 这样就不会生成catalina.out文件了
3.客户端访问日志(access日志文件的控制) 因为access日志默认是不开的,所以我们先来看一下怎么开启access日志。 打开 .../tomcat/conf/server.xml。发现以下内容是注释掉的 ```
-->
4.日志中字段详释:
className:官方文档上说了This MUST be set toorg.apache.catalina.valves.AccessLogValve to use the default access log valve.&<60; 想配置访问日志?这就必须得写成这样 directory 日志存放的位置,默认是logs目录下
prefix 这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log
suffix 设置日志的后缀
pattern 对日志输出内容的设置,这个是重点,我们下面详细解释
resolveHosts 如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦
fileDateFormat 日志的时间格式
pattern的参数:可以设置成common combined 或者手动定义
common 的值: %h %l %u %t %r %s %b
combined 的值: %h %l %u %t %r %s %b %{Referer}i%{User-Agent}i
%a 这是记录访问者的IP1
%A 这是记录本地服务器的IP
%b 这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-
%B 看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,我把官方解释贴出来吧 Bytes sent, excluding HTTP headers
%h 这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了
%H 访问者使用的协议,这里是HTTP/1.1
%l 官方也说这个always return '-' 官方解释:Remote logical username from identd
%m 访问的方式,是GET还是POST
%p 本地接收访问的端口
%q 比如你访问的是index.jsp?a=c,那么这里就显示?a=c,这个q是querystring的意思
%r 官方解释:First line of the request (method and request URI)
%s 这个是http的状态,经常看见访问某个网页报错误500什么的,那也会返回500
%S 用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
%t 这就是时间啦,有一个Common Log Format可以改
%u 得到了验证的访问者,否则就是"-"
%U 访问的URL地址
%v 服务器名称,可能就是你url里面写的那个吧,我这里是localhost
%D 官方解释:Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
%T 官方解释:Time taken to process the request, in seconds,应该是访问发生的时间,以秒记