Tomcat日志的详细配置

【导读】在Tomcat根目录下的conf目录下找到 server.xml文件。server.xml是tomcat最为重要的系统文件。通过这个文件配置系统日志。

在Tomcat根目录下的conf目录下找到server..xml文件。然后进行配置。

举例如下:

<?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

Bytessent,excludingHTTPheaders

%h

这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了

%H

访问者使用的协议,这里是HTTP/1.1

%l

Remotelogicalusernamefromidentd(可能这样翻译:记录浏览者进行身份验证时提供的名字)

%m

访问的方式,是GET还是POST

%v

服务器名称

%D

Timetakentoprocesstherequest,inmillis,应该是访问发生的时间,以毫秒记

%T

Timetakentoprocesstherequest,inseconds,应该是访问发生的时间,以秒记

相关推荐