一、配置与说明
tomcat访问日志格式配置,在config/server.xml里Host标签下加上
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />
我们在日志文件中将看到如下文本:
10.217.14.16 - - [21/Oct/2016:15:48:54 +0800] "POST /updates/related_notice_num.json HTTP/1.0" [channel=App Store&gid=92391918-2173-4A66-8B31-B2FB3F8FB3DF&os=2&plat=2&sver=10.000000&token=MzM1OTc0MjQ1MkB3ZWliby55bXguY29tfHdlaWJvfDQ5ZGFmMjk0YjQ5YWQxMTZiZjBmYWM4ZDdhYzg3ZWQ0&ua=&ver=4.2.1] 200 - AllApp/4.2.1 (iPhone; iOS 10.0.2; Scale/3.00) 0.004 91
参数说明:
属性 | 描述 |
---|---|
className | 要使用的实现的Java类名。这必须设置为 org.apache.catalina.valves.AccessLogValve以使用默认访问日志阀。要使用专为生产用途设计的更优化的访问日志阀,必须将此属性设置为 org.apache.catalina.valves.FastCommonAccessLogValve。在这种情况下,仅 支持 |
directory | 将放置由此阀创建的日志文件的目录的绝对路径名或相对路径名。如果指定了相对路径,则将其解释为相对于$ CATALINA_HOME。如果未指定目录属性,则默认值为“logs”(相对于$ CATALINA_HOME)。 |
pattern | 一种格式化布局,用于标识要记录的请求和响应中的各种信息字段,或单词 |
prefix | 前缀添加到每个日志文件名称的开头。如果未指定,则默认值为“access_log。”。要指定无前缀,请使用零长度字符串。 |
resolveHosts | 设置为 |
suffix | 后缀添加到每个日志文件名称的末尾。如果未指定,则默认值为“”。要指定无后缀,请使用零长度字符串。 |
rotatable | 默认为true。用于确定是否应发生日志轮换的标志。如果设置为false,则永远不会旋转此文件并 忽略fileDateFormat。谨慎使用! |
condition | 打开条件记录。如果设置,则仅当ServletRequest.getAttribute()为null时才会记录请求。例如,如果此值设置为 垃圾,则只有在ServletRequest.getAttribute(“junk”)== null时才会记录特定请求。使用Filters是在许多不同请求中设置/取消设置ServletRequest中的属性的简单方法。 |
fileDateFormat | 允许访问日志文件名中的自定义日期格式。日期格式还决定文件旋转的频率。如果您希望每小时旋转一次,请将此值设置为:yyyy-MM-dd.HH |
pattern
属性的值由文字文本字符串组成,与前缀为“%”字符的模式标识符组合,以替换当前请求和响应中的相应变量值。支持以下模式代码:
resolveHosts
为false,则为IP地址 )还支持从cookie,传入头,传出响应头,Session或ServletRequest中的其他内容中写入信息。它以apache语法为模型:
%{xxx}i
传入请求标头%{xxx}o
用于传出响应标头%{xxx}c
对于特定的请求cookie%{xxx}r
xxx是ServletRequest中的一个属性%{xxx}s
xxx是HttpSession中的一个属性下面着重讲下pattern。它的参数比较多。可以设置成common,combined两种格式。
common的值:%h %l %u %t %r %s %b
combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i (至于combined的值的最后两个为什么会这样,我也不太清楚)
%a 这是记录访问者的IP,在日志里是127.0.0.1
%A 这是记录本地服务器的IP,在日志里是192.168.254.108
%b 发送信息的字节数,不包括http头,如果字节数为0的话,显示为-
%B 发送信息的字节数,不包括http头。
%h 服务器的名称。如果resolveHosts为false的话,这里就是IP地址了,例如我的日志里是10.217.14.16
%H 访问者的协议,这里是HTTP/1.0
%l 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')
%m 访问的方式,是GET还是POST
%p 本地接收访问的端口
%q 比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,就是querystring的意思
%r First line of the request (method and request URI) 请求的方法和URL
%s http的响应状态码
%S 用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
%t 请求时间
%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,请求消耗的时间,以秒记
附:参考官方文档: http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html
作者:冲顶远角
来源:CSDN
原文:https://blog.csdn.net/qq_30121245/article/details/52861935
版权声明:本文为博主原创文章,转载请附上博文链接!