Tomcat日志的详细配置
示例如下:
<?xml version="1.0" encoding="utf-8"?> <Context displayName="test" docBase="test" path="/test" reloadable="true" workDir="work/Catalina/localhost/test"> <Valve className="org.apache.catalina.valves.AccessLogValve" rotatable="true" directory="logs" prefix="localhost_test_access_log." suffix=".log" pattern="combined" resolveHosts="false"/> //此Valve配置亦可配置在server.xml中的Host段内 </Context>
字段分析:
className
org.apache.catalina.valves.AccessLogValve 想配置访问日志,必须得写成这样。
directory
日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,可以修改.
prefix
这个是日志文件的名称前缀,日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log
suffix 后缀名
pattern 主要参数,声明日志类型。主要有common和combined
resolveHosts
如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址
rotatable
默认为true,默认的设置使得你的tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀)
为false的话,tomcat会忽略时间,不会新生成文件,最后导致你的文件超级大.
condition
这个参数不太实用,可以设置任何值,比如设置成condition="tkq",那么只有当ServletRequest.getAttribute("tkq")为空的时候,才会被记录下来
fileDateFormat
时间格式,但是这个时间格式是针对日志文件起作用的,默认以天为单位生成日志。
如果tomcat每小时生成一个日志文件,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH",当然也可以按分钟生成
common的值:%h %l %u %t %r %s %b
combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
%a
这是记录访问者的IP
%A
这是记录本地服务器的IP
%b
这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-
%B
Bytes sent, excluding HTTP headers
%h
这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了
%H
访问者使用的协议,这里是HTTP/1.1
%l
Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)
%m
访问的方式,是GET还是POST
%p
本地接收访问的端口
%q
访问的是aaa.jsp?bbb=ccc,那么就显示?bbb=ccc,q是querystring的意思
%r
官方解释:First line of the request (method and request URI)
%s
这个是http的状态
%S
用户的session ID
%t
这就是时间啦
%u
得到了验证的访问者,否则就是"-"
%U
访问的URL地址
%v
服务器名称
%D
Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
%T
Time taken to process the request, in seconds,应该是访问发生的时间,以秒记