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"/>
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訪问日志浅析的更多相关文章
- Nginx 訪问日志增长暴增出现尖刀的具体分析
前言: Nginx日志里面Mobileweb_access.log增长特别大.一天上百兆.将近100W的訪问记录.依照我们眼下的规模,热点用户才500个左右.就算人人用手机app訪问 ...
- tomcat URL简写案例:模拟站点www.baidu.com的訪问
tomcat URL简写案例:模拟站点 * 实际URL:http://www.baidu.com:8080/myweb/1.html * 实际位置:F:\mywebapps\myweb\1.htm ...
- Tomcat可以在eclipse里启动,可是不能訪问首页的问题
今天在使用eclipse的时候发现一个问题.就是我在eclipse里面已经启动了tomcat.部署上去的项目也能够启动,可是就是没法訪问tomcat的首页.port等等都没有问题. 后来查到解决方式, ...
- 把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式
临床表现: Tomcat启动后首页能訪问(http://localhost:8080/). 将自己写的一个webprojectwar包放到Tomcat安装文件夹下的/webapps以下(比方hello ...
- tomcat的webapps文件夹下放更新后的项目就訪问不了
昨天给同事更新完程序,同事说更新后的程序訪问不了.它曾经的程序叫tj52,更新后的程序叫webapp.也就是tomcat的文件夹有两个文件架,一个叫webapp,一个叫tj52.最后另外一同事给了解决 ...
- 严重: Error in dependencyCheck java.io.IOException: invalid header field(tomcat启动成功可是訪问web项目404错误)
tomcat启动的时候出现 严重: Error in dependencyCheck java.io.IOException: invalid header field 而且tomcat也不自己主动r ...
- tomcat 实现域名crm.test.com訪问
**tomcat 上下文.实现的效果.是在浏览器输入ip或者域名能直接訪问.不用输入项目project名字 正常初始化都是http://10.243.12.34:8080/plcrm.要变成 crm. ...
- Tomcat访问日志浅析 (转)
来自:http://blog.chinaunix.net/uid-20691565-id-3938220.html Tomcat的访问日志是靠org.apache.catalina.valves.Ac ...
- Spring ORM数据訪问——Hibernate
Hibernate 我们将首先介绍Spring环境中的Hibernate 5.然后介绍使用Hibernate 5来演示Spring集成O-R映射器的方法. 本节将具体介绍很多问题,并显示DAO实现和事 ...
随机推荐
- 学习Android Studio里的Gradle
一直听说Gradle很强大,只是偶尔用Android Studio创建Demo的时候看到他一次,今天抽个时间完整记录一下. 1.gradle位置 Android Studio项目创建好之后,默认有3个 ...
- c3p0、dbcp、proxool、BoneCP比较
1.1 测试环境: 操作系统:windows xp sp3 数据库:mysql 5.1 1.2 测试条件: initialSize=30; maxSize=200; minSize=30; 其余参数为 ...
- 修改后无警告全面支持non-ARC以及ARC的OpenUDID
OpenUDID Open source initiative for a universal and persistent UDID solution for iOS. 首创的给iOS提供设备唯一标 ...
- ORACLE 修改已有存储过程(plsql工具修改)
pl/sql 修改包下存储过程步骤: 假定有如下过程:pkg_ypgl_query.PROC_KCZQUERY; 1. pl/sql 右侧objects面板中选择Package bodies>P ...
- Spring jdbcTemplat 写入BLOB数据为空
近日做平台新闻接口,数据库用的是Oracle10g,项目使用Spring框架,新闻表内有一字段为BLOB类型,可是在写入时遇到了写入后BLOB字段为空,替换了Spring 的jar包无效,跟b ...
- go语言基础之切片做函数参数
1.切片做函数参数 (备注:用了冒泡排序) 示例: package main //必须有个main包 import "fmt" import "math/rand&quo ...
- SonarQube代码质量管理平台 的安装、配置与使用
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:ht ...
- 默认网关和默认路由 —— Cisco CCNA – Default Gateway & Default Routes
原文:https://www.certificationkits.com/cisco-certification/ccna-articles/cisco-ccna-intro-to-routing-b ...
- SqlServer 在查询结果中如何过滤掉重复数据
问题背景 在一个多表查询的sql中正常情况下产生的数据都是唯一的,但因为数据库中存在错误(某张表中存在相同的外键ID)导致我这边查询出来的数据就会有重复的问题 下面结果集中UserID:15834存在 ...
- Jmeter+Ant+Jenkins搭建持续集成的接口测试框架
https://my.oschina.net/hellotest/blog/516079 摘要: 一个系统通常有多个接口,软件的生命周期中,我们会不断的去优化老的接口和开发新的接口,那么在这个过程中, ...