Tomcat日志的详细配置在Tomcat根目录下的conf目录下找到 server..xml文件。然后进行配置。?? 举例如下:?Java
Tomcat日志的详细配置
在Tomcat根目录下的conf目录下找到 server..xml文件。然后进行配置。?
? 举例如下:?
Java代码??
- <?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)
好像有点区别
-->便可以生成日志。通过对 pattern 项的修改,可以改变日志输出的内容。
?
该项值可以为: 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 )的访问日志相似。