打开tomcat中文件conf/server.xml,可以看到如下代码:
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t %r %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="eMeet" path="/eMeet" reloadable="true" source="org.eclipse.jst.jee.server:eMeet"/></Host>
中间的Value标签配置的是tomcat的访问日志信息,目录默认为tomcat/logs下,生成目录可自己调整,使用属性directory。
因为部署的网站nginx转发到tomcat,访问速率很慢,所以查找一下原因。
那么访问日志中的比如“%h”等的意思是什么呢,具体参数的含义如下:
pattern的详细说明,tomcat官网
http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html
%a 远端IP
%A 本地IP
%b 发送的字节数,不包含HTTP头,如果为0,使用”-”
%B 发送的字节数,不包含HTTP头
%h 远端主机名(如果resolveHosts=false),远端的IP
%H 请求协议
%l 从identd返回的远端逻辑用户名,总是返回’-’
%m 请求的方法
%p 收到请求的本地端口号
%q 查询字符串
%r 请求的第一行
%s 响应的状态码
%S 用户的sessionID
%t 日志和时间,使用通常的log格式
%u 认证以后的远端用户(如果存在的话,否则为’-’)
%U 请求的URI路径
%v 本地服务器的名称
%D 处理请求的时间,以毫秒为单位
%T 处理请求的时间,以秒为单位
参数/选项说明:
className: 实现的java类名,必须设置成org.apache.catalina.valves.AccessLogValve;
directory: 存放日志文件的目录;
pattern: 需要记录的日志信息的格式布局,如果是”common”或者”combined”,说明是使用的标准记录格式,也有自定义的格式,下面会详细说明;
prefix: 日志文件名的前缀,如果没有指定,缺省值是”access_log.;(要注意后面有个小点);
resolveHosts: 将远端主机的IP通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端主机的IP地址;
sufix: 日志文件的后缀名。(sufix=”.log”);也需要注意有个小点;
rotatable: 缺省值为true,决定日志是否要翻转,如果为false则永不翻转,并且忽略fileDateFormat,谨慎使用。
condition: 打开条件日志
fileDateFormat:允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。
如果想每小时翻转一次,可以定义为“yyyy-MM-dd.HH”;