• Tomcat訪问日志浅析


    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt" pattern="%s %D %t %a %U" fileDateFormat="yyyy-MM-dd.HH" resolveHosts="false"/>
    上面的日志会记录:http状态码 运行时长 时间 IP 请求的地址
    fileDateFormat每小时保存一个。去掉的话。默认是一天。由于日志太大所以改成每小时生成一个。

    调试完了,须要关闭。

              

    Tomcat的訪问日志是靠org.apache.catalina.valves.AccessLogValve来控制的。你能够改动$tomcat/conf/server.xml来启用它 ($tomcat是Tomcat安装的文件夹)。

    AccessLogValve默认应该是凝视掉的,简单的将其凝视去掉。然后重新启动Tomcat就能够了。

    下面是Tomcat默认的配置:

    <valve classname=“org.apache.catalina.valves.accesslogvalve”< p=""></valve classname=“org.apache.catalina.valves.accesslogvalve”<>

    directory=“logs” prefix=“localhost_access_log.” suffix=“.txt”

    pattern=“common” resolveHosts=“false”/>

    你能够设置日志保存的文件夹(directory),日志的文件名称的前缀(prefix)。后缀(suffix)和日志的详细格式。保存文件夹,文件名称的前缀、后缀都非常easy,一般默认设置也就能够了。

    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 – 远程username,始终为 ‘-’ (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, client请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的訪问日志中,你能够用以下的语法来引用。

    %{xxx}i – 记录client请求中带的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”< p=""></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 - 远程username。始终为 ‘-’

    %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

    来源: 

  • 相关阅读:
    Discuz论坛自动发帖机
    C#测试数据库连接是否成功
    JS重写提示框(confirm)
    随笔 选择
    随笔 诚实
    web项目经理手册【1】版本控制流程
    Asp.net多层架构中的变量引用与传递
    ASP.NET跨页面传值技巧总结
    web项目经理手册【3】Code Review
    web项目经理手册【7】项目经理需要铭记在心的话
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6702198.html
Copyright © 2020-2023  润新知