zoukankan      html  css  js  c++  java
  • Tomcat访问日志浅析 (转)

    来自:http://blog.chinaunix.net/uid-20691565-id-3938220.html

    Tomcat的访问日志是靠org.apache.catalina.valves.AccessLogValve来控制的,你可以修改$tomcat/conf/server.xml来启用它 ($tomcat是Tomcat安装的目录)。AccessLogValve默认应该是注释掉的,简单的将其注释去掉,然后重启Tomcat就可以了。

    以下是Tomcat默认的配置:

    <Valve className=“org.apache.catalina.valves.AccessLogValve”
    directory=“logs” prefix=“localhost_access_log.” suffix=“.txt”
    pattern=“common” resolveHosts=“false”/>

    你可以设置日志保存的目录(directory),日志的文件名的前缀(prefix),后缀(suffix)和日志的具体格式。保存目录,文件名的前缀、后缀都很简单,一般默认设置也就可以了。resolveHost出于性能的考虑,一般也设为false. 但访问日志的格式(pattern)却有很多的选项供你选择。以下列出了一些基本的日志格式项:

    • %a – 远程主机的IP (Remote IP address)

    • %A – 本机IP (Local IP address)

    • %b – 发送字节数,不包含HTTP头,0字节则显示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes
      were sent)

    • %B – 发送字节数,不包含HTTP头 (Bytes sent, excluding HTTP headers)

    • %h – 远程主机名 (Remote host name)

    • %H – 请求的具体协议,HTTP/1.0 或 HTTP/1.1 (Request protocol)

    • %l – 远程用户名,始终为 ‘-’ (Remote logical username from identd (always returns ‘-’))

    • %m – 请求方式,GET, POST, PUT (Request method)

    • %p – 本机端口 (Local port)

    • %q – 查询串 (Query string (prepended with a ‘?’ if it exists, otherwise
      an empty string)

    • %r – HTTP请求中的第一行 (First line of the request)

    • %s – HTTP状态码 (HTTP status code of the response)

    • %S – 用户会话ID (User session ID)

    • %t – 访问日期和时间 (Date and time, in Common Log Format format)

    • %u – 已经验证的远程用户 (Remote user that was authenticated

    • %U – 请求的URL路径 (Requested URL path)

    • %v – 本地服务器名 (Local server name)

    • %D – 处理请求所耗费的毫秒数 (Time taken to process the request, in millis)

    • %T – 处理请求所耗费的秒数 (Time taken to process the request, in seconds)

    你可以用以上的任意组合来定制你的访问日志格式,也可以用下面两个别名common和combined来指定常用的日志格式:

    • common – %h %l %u %t "%r" %s %b

    • combined -
      %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"

    另外你还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。

    • %{xxx}i – 记录客户端请求中带的HTTP头xxx(incoming headers)

    • %{xxx}c – 记录特定的cookie xxx

    • %{xxx}r – 记录ServletRequest中的xxx属性(attribute)

    • %{xxx}s – 记录HttpSession中的xxx属性(attribute)

    比如下面是实际的一个访问日志格式的配置:

    <Valve className=“org.apache.catalina.valves.AccessLogValve”
    directory=“logs” prefix=“phone_access_log.” suffix=“.txt”
    pattern=“%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i MSISDN=%{x-up-calling-line-id}i”resolveHosts=“false”/>

    其中日志格式(pattern)指定为”%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i MSISDN=%{x-up-calling-line-id}i“,则实际的访问日志中将会包括:

    • %h – 远程主机名

    • %l - 远程用户名,始终为 ‘-’

    • %T - 处理请求所耗费的秒数

    • %t – 访问日期和时间

    • %r – HTTP请求中的第一行

    • %s – HTTP状态码

    • %b – 发送字节数,不包含HTTP头(0字节则显示 ‘-’)

    • %{Referer}i – Referer URL

    • %{User-Agent}i – User agent

    • MSISDN=%{x-up-calling-line-id}i – 手机号

    实际的访问日志如下:

    xxx.xxx.xx.xxx – 0.270 [14/Jul/2008:13:10:53 +0800] POST /phone/xxx/gprs HTTP/1.1 200 91812 – SonyEricssonW890i/R1EA Profile/MIDP-2.1 Configuration/CLDC-1.1 MSISDN=11111111111

    … …

    xxx.xxx.xx.xxx – 0.083 [14/Jul/2008:21:20:55 +0800] POST /phone/xxx/gprs HTTP/1.1 200 404 – SonyEricssonW910i/R1FA Profile/MIDP-2.1 Configuration/CLDC-1.1 MSISDN=11111111111

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/sunxucool/p/4182092.html
Copyright © 2011-2022 走看看