<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

来源:

Tomcat訪问日志浅析的更多相关文章

  1. Nginx 訪问日志增长暴增出现尖刀的具体分析

    前言:          Nginx日志里面Mobileweb_access.log增长特别大.一天上百兆.将近100W的訪问记录.依照我们眼下的规模,热点用户才500个左右.就算人人用手机app訪问 ...

  2. tomcat URL简写案例:模拟站点www.baidu.com的訪问

    tomcat URL简写案例:模拟站点  * 实际URL:http://www.baidu.com:8080/myweb/1.html  * 实际位置:F:\mywebapps\myweb\1.htm ...

  3. Tomcat可以在eclipse里启动,可是不能訪问首页的问题

    今天在使用eclipse的时候发现一个问题.就是我在eclipse里面已经启动了tomcat.部署上去的项目也能够启动,可是就是没法訪问tomcat的首页.port等等都没有问题. 后来查到解决方式, ...

  4. 把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式

    临床表现: Tomcat启动后首页能訪问(http://localhost:8080/). 将自己写的一个webprojectwar包放到Tomcat安装文件夹下的/webapps以下(比方hello ...

  5. tomcat的webapps文件夹下放更新后的项目就訪问不了

    昨天给同事更新完程序,同事说更新后的程序訪问不了.它曾经的程序叫tj52,更新后的程序叫webapp.也就是tomcat的文件夹有两个文件架,一个叫webapp,一个叫tj52.最后另外一同事给了解决 ...

  6. 严重: Error in dependencyCheck java.io.IOException: invalid header field(tomcat启动成功可是訪问web项目404错误)

    tomcat启动的时候出现 严重: Error in dependencyCheck java.io.IOException: invalid header field 而且tomcat也不自己主动r ...

  7. tomcat 实现域名crm.test.com訪问

    **tomcat 上下文.实现的效果.是在浏览器输入ip或者域名能直接訪问.不用输入项目project名字 正常初始化都是http://10.243.12.34:8080/plcrm.要变成 crm. ...

  8. Tomcat访问日志浅析 (转)

    来自:http://blog.chinaunix.net/uid-20691565-id-3938220.html Tomcat的访问日志是靠org.apache.catalina.valves.Ac ...

  9. Spring ORM数据訪问——Hibernate

    Hibernate 我们将首先介绍Spring环境中的Hibernate 5.然后介绍使用Hibernate 5来演示Spring集成O-R映射器的方法. 本节将具体介绍很多问题,并显示DAO实现和事 ...

随机推荐

  1. Java heap space 解决方法(转)

      因为程序要从数据读取近10W行记录处理,当读到9W的时候就出现 java.lang.OutOfMemoryError: Java heap space 这样的错误. 在网上一查可能是JAVA的堆栈 ...

  2. unity 脚本执行顺序设置 Script Execution Order Settings

     通过Edit->Project Settings->Script Execution Order打开MonoManager面板  或者选择任意脚本在Inspector视图中点击Execu ...

  3. js读取json方法

    json也是对象,可以直接使用对象调用 var json = {contry:{area:{man:"12万",women:"10万"}}}; json.con ...

  4. 混沌数学之logistic模型

    logistic回归又称logistic回归分析,主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率. 相关DEMO参见:混沌数学之离散点集图形DEMO ...

  5. C++类模板的声明和定义为什么要放在同一个文件

    不是只能放在.h里面,但是推荐放在.h里面.STL模板实现全部是放在.h里面的.------------------编译能通过.1)参与编译的只是.cpp文件,不会报错的原因,是因为它能在.h里面找到 ...

  6. POJ 1753 Flip Game (枚举)

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26492   Accepted: 11422 Descr ...

  7. Swap Nodes in Pairs leetcode java

    题目: Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1-> ...

  8. 几行JavaScript代码搞定Iframe 自动适应

    场景:Iframe嵌入flash,希望flash能随着页面的resize而resize. 主要代码: 代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...

  9. mysql数据库查询优化

    上两周一直想办法提高查询速度,取得一点效果,解决了部分问题,记下来以便将来自己查看. 由于公司没有专门的DBA,我自己对mysql数据库也不是很熟悉,而且这个JAVA开发的网络审计系统的管理系统,是经 ...

  10. svn 错误集锦续

    4,svn出错:Error: File or directory '.' is out of date; try updating 出错原因:SVN服务器端的版本比你的版本要新,不允许提交. 解决方案 ...