在Tomcat根目录下的conf目录下找到 server..xml文件。然后进行配置。
举例如下:
对上面的字段分析:
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
%t
这就是时间啦
%r
请求的链接
%s
响应状态
%u
得到了验证的访问者,否则就是"-"
%U
访问的URL地址
%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
%v
服务器名称
%D
Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
%T
Time taken to process the request, in seconds,应该是访问发生的时间,以秒记
举例如下:
- <?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"/>
- </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
%t
这就是时间啦
%r
请求的链接
%s
响应状态
%u
得到了验证的访问者,否则就是"-"
%U
访问的URL地址
%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
%v
服务器名称
%D
Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
%T
Time taken to process the request, in seconds,应该是访问发生的时间,以秒记
====================================================================================
修改日志生成格式时,可以直接修改 pattern="combined"选项也可以修改为pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i"
用日志分析软件awstats分析日志时pattern="combined"生成的日志好用,另外的pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i"不好用,分别生成日志格式如下:
192.168.168.73 - - [14/Jul/2011:15:12:53 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"
192.168.168.73 - - [14/Jul/2011:14:59:54 +0800] GET / HTTP/1.1 304 - - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)
好像有点区别
-->
用日志分析软件awstats分析日志时pattern="combined"生成的日志好用,另外的pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i"不好用,分别生成日志格式如下:
192.168.168.73 - - [14/Jul/2011:15:12:53 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"
192.168.168.73 - - [14/Jul/2011:14:59:54 +0800] GET / HTTP/1.1 304 - - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)
好像有点区别
-->
便可以生成日志。通过对 pattern 项的修改,可以改变日志输出的内容。
该项值可以为: common 与 combined ,这两个格式对应的日志输出内容如下:
common 的值: %h %l %u %t %r %s %b
combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
该项值可以为: common 与 combined ,这两个格式对应的日志输出内容如下:
common 的值: %h %l %u %t %r %s %b
combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
其内容与 Apache ( web server )的访问日志相似。