12343052 发表于 2017-1-21 12:12:45

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
   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,应该是访问发生的时间,以秒记
页: [1]
查看完整版本: Tomcat日志的详细配置