zoukankan      html  css  js  c++  java
  • tomcat详细日志配置

    在server.xml里的<host>标签下加上
    <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
    就可以了,下面咱们逐一分析各个参数。

    className 

    官方文档上说了This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想配置访问日志?这就必须得写成这样。

    directory 

    这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:

    prefix

    这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log

    suffix

    这就是后缀名啦,可以改成别的

    pattern

    这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。

    resolveHosts

    如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦

    还有一些参数:

    rotatable

    默认为true,默认的设置使得你的tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀),参照我的日志名就知道了:localhost_access_log.2007-09-22.txt
    使用这个需要谨慎,因为你将其设置为false的话,tomcat会忽略时间,不会新生成文件,最后导致你的文件超级大,这样生成的文件名就是:localhost_access_log.txt

    condition

    这个参数不太实用,可以设置任何值,比如咱们设置成condition="tkq",那么只有当ServletRequest.getAttribute("tkq")为空的时候,才会被记录下来

    fileDateFormat

    最后的一个参数,很明白,这就是时间格式嘛,但是这个时间格式是针对日志文件起作用的,还记得咱们生成的日志文件全名么:localhost_access_log.2007-09-22.txt,这里面的2007-09-22就是这么来的,如果你想让tomcat每小时生成一个日志文件,也很简单,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH",当然也可以按分钟生成什么的,自己改改吧

    上面是所有的9个参数,刚才咱们说了,pattern这个参数的值比较多,咱们拿下来单独说:
    pattern可以设置成两种方式,第一种是pattern="common",第二种是pattern="combined"
    这就可以控制日志里面的格式,各位说了,pattern就这两种?common和combined又是什么意

    思,具体是什么格式呢?
    别着急,咱们一点一点看,其实pattern是可以设置的,common和combined只是集成了一些显

    示方式,就是将显示方式给组合了,pattern的实际值有如下几种,都是后面一个字母,前面

    一个%百分号
    咱们先贴出来我的日志里面的一条记录,对应着看

    127.0.0.1 192.168.254.108 - -1 127.0.0.1 HTTP/1.1 - GET 80&<60; GET /rightmainima/leftbott4.swf HTTP/1.1 304 5563A67708646B6AA299C33D59BE132A [22/Sep/2007:10:08:52 +0800] - /rightmainima/leftbott4.swf localhost 0 0.000

    %a      

    这是记录访问者的IP,在日志里是127.0.0.1

    %A

    这是记录本地服务器的IP,在日志里是192.168.254.108

    %b

    这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-

    %B

    看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,没想明白,望知道者告知,我把官方解释贴出来吧 Bytes sent, excluding HTTP headers

    %h

    这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了,我的日志里是127.0.0.1

    %H

    访问者使用的协议,这里是HTTP/1.1

    %l

    这个也不太清楚,官方也说这个always return '-' 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')

    %m

    访问的方式,是GET还是POST,我这是GET

    %p

    本地接收访问的端口,呵呵,我这里是80啦

    %q

    比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,明白了吧,这个q是querystring的意思

    %r

    官方解释:First line of the request (method and request URI),不是很明白

    %s

    这个是http的状态,我这里返回的是304,咱们经常看见访问某个网页报错误500什么的,那也会返回500

    %S

    用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID

    %t

    这就是时间啦,好像有一个Common Log Format可以改,不过我没找到

    %u

    得到了验证的访问者,否则就是"-"

    %U

    访问的URL地址,我这里是/rightmainima/leftbott4.swf

    %v

    服务器名称,可能就是你url里面写的那个吧,我这里是localhost

    %D

    官方解释:Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记

    %T

    官方解释:Time taken to process the request, in seconds,应该是访问发生的时间,以秒记



    common的值:%h %l %u %t %r %s %b
    combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i

    至于combined的值的最后两个为什么会这样,我也不太清楚…

    这就是所有的参数了,欢迎交流探讨!
    这是官方的解释地址:http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html
    这个也可以看一看做参考:http://tomcat.apache.org/tomcat-5.0-doc/config/logger.html
    还有这个:http://tomcat.apache.org/tomcat-5.0-doc/config/host.html

    Apache官方对Tomcat访问日志的配置介绍的并不详细,大家可以参考Apache(web server)的访问日志,两者有相当多相似的地方

  • 相关阅读:
    SD卡测试
    测试人员可能会遇到的问题
    HDU 1024 Max Sum Plus Plus
    HDU 1176 免费馅饼
    HDU 1257 最少拦截系统
    HDU 1087 Super Jumping! Jumping! Jumping!
    poj 1328 Radar Installation
    poj 1753 Flip Game
    HDU 1003 Max Sum
    HDU 5592 ZYB's Premutation(BestCoder Round #65 C)
  • 原文地址:https://www.cnblogs.com/ruiy/p/catalinaLogs.html
Copyright © 2011-2022 走看看