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,应该是访问发生的时间,以秒记