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就这两种?commoncombined又是什么意

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

    示方式,就是将显示方式给组合了,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

    这个就是服务器名称了,如果resolveHostsfalse的话,这里就是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,明白了吧,这个qquerystring的意思

    %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访问日志的配置介绍的并不详细,大家可以参考Apacheweb server)的访问日志,两者有相当多相似的地方

    本文转自hilliate 博客

  • 相关阅读:
    数据类型装换
    变量及数据类型
    27 网络通信协议 udp tcp
    26 socket简单操作
    26 socket简单操作
    14 内置函数 递归 二分法查找
    15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用
    12 生成器和生成器函数以及各种推导式
    13 内置函数 匿名函数 eval,exec,compile
    10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量
  • 原文地址:https://www.cnblogs.com/pony/p/1384686.html
Copyright © 2011-2022 走看看