tomcat访问日志格式配置,在config/server.xml里Host标签下加上
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />
className | 官方文档上说了:This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve。 |
directory | 日志文件存放的目录。通常设置为tomcat下已有的那个logs文件。 |
prefix | 日志文件的名称前缀。 |
suffix | 日志文件的名称后缀。 |
pattern | 最主要的参数。下面会细讲。 |
resolveHosts | 如果是true,tomcat会将这个服务器IP地址通过DNS转换为主机名;如果是false,就直接写服务器IP地址啦。默认false。 |
rotatable | 默认为true,tomcat生成的文件名为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀),如:localhost_access_log.2007-09-22.txt。设置为false的话,tomcat会忽略时间,不会生成新文件,文件名就是:localhost_access_log.txt。长此以往,这个日志文件会超级大 |
condition | 这个参数不太实用,可设置任何值,比如设置成condition="tkq",那么只有当ServletRequest.getAttribute("tkq")为空的时候,该条日志才会被记录下来。 |
fileDateFormat |
时间格式。但这个时间格式是针对日志文件名起作用的。生成的日志文件全名:localhost_access_log.2016-09-22.txt,这里面的2016-09-22就是这么来的。如果想让tomcat每小时生成一个日志文件,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH" |
下面着重讲下pattern。它的参数比较多。可以设置成common,combined两种格式。
common的值:%h %l %u %t %r %s %b
combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i (至于combined的值的最后两个为什么会这样,我也不太清楚)
附:参考官方文档: http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html