设为首页 收藏本站
查看: 504|回复: 0

[经验分享] Tomcat访问日志详细配(转)

[复制链接]

尚未签到

发表于 2017-1-28 09:41:23 | 显示全部楼层 |阅读模式
  tomcat日志 tomcat日志配置
  在server.xml里的<host>标签下加上
  <Valve className="org.apache.catalina.valves.AccessLogValve"
  directory="logs" prefix="localhost_access_log." suffix=".txt"
  pattern="common" resolveHosts="false"/>
  就可以了,下面咱们逐一分析各个参数。
  className 
  官方文档上说了This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想配置访问日志?这就必须得写成这样。
  directory 
  这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:\
  prefix
  这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log
  suffix
  这就是后缀名啦,可以改成别的
  pattern
  这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。
  resolveHosts
  如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦
  还有一些参数:
  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.2007-09-22.txt,这里面的2007-09-22就是这么来的,如果你想让tomcat每小时生成一个日志文件,也很简单,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH",当然也可以按分钟生成什么的,自己改改吧
  上面是所有的9个参数,刚才咱们说了,pattern这个参数的值比较多,咱们拿下来单独说:
  pattern可以设置成两种方式,第一种是pattern="common",第二种是pattern="combined"
  这就可以控制日志里面的格式,各位说了,pattern就这两种?common和combined又是什么意
  思,具体是什么格式呢?
  别着急,咱们一点一点看,其实pattern是可以设置的,common和combined只是集成了一些显
  示方式,就是将显示方式给组合了,pattern的实际值有如下几种,都是后面一个字母,前面
  一个%百分号
  咱们先贴出来我的日志里面的一条记录,对应着看
  127.0.0.1 192.168.254.108 - -1 127.0.0.1 HTTP/1.1 - GET 80&<60; GET /rightmainima/leftbott4.swf HTTP/1.1 304 5563A67708646B6AA299C33D59BE132A [22/Sep/2007:10:08:52 +0800] - /rightmainima/leftbott4.swf localhost 0 0.000
  
  %a      
  这是记录访问者的IP,在日志里是127.0.0.1
  %A
  这是记录本地服务器的IP,在日志里是192.168.254.108
  %b
  这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-
  %B
  看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,没想明白,望知道者告知,我把官方解释贴出来吧 Bytes sent, excluding HTTP headers
  %h
  这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了,我的日志里是127.0.0.1
  %H
  访问者使用的协议,这里是HTTP/1.1
  %l
  这个也不太清楚,官方也说这个always return '-' 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')
  %m
  访问的方式,是GET还是POST,我这是GET
  %p
  本地接收访问的端口,呵呵,我这里是80啦
  %q
  比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,明白了吧,这个q是querystring的意思
  %r
  官方解释:First line of the request (method and request URI),不是很明白
  %s
  这个是http的状态,我这里返回的是304,咱们经常看见访问某个网页报错误500什么的,那也会返回500
  %S
  用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
  %t
  这就是时间啦,好像有一个Common Log Format可以改,不过我没找到
  %u
  得到了验证的访问者,否则就是"-"
  %U
  访问的URL地址,我这里是/rightmainima/leftbott4.swf
  %v
  服务器名称,可能就是你url里面写的那个吧,我这里是localhost
  %D
  官方解释:Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
  %T
  官方解释:Time taken to process the request, in seconds,应该是访问发生的时间,以秒记
  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
  这个也可以看一看做参考:http://tomcat.apache.org/tomcat-5.0-doc/config/logger.html
  还有这个:http://tomcat.apache.org/tomcat-5.0-doc/config/host.html
  Apache官方对Tomcat访问日志的配置介绍的并不详细,大家可以参考Apache(web server)的访问日志,两者有相当多相似的地方
  
  
  另一篇
  
  Tomcat日志的详细配置(网络整理)
  示例如下:
    <?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"/> 
  //此Valve配置亦可配置在server.xml中的Host段内
    </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
    %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
    %p
     本地接收访问的端口
    %q
     访问的是aaa.jsp?bbb=ccc,那么就显示?bbb=ccc,q是querystring的意思
    %r
     官方解释:First line of the request (method and request URI)
    %s
     这个是http的状态 
    %S
     用户的session ID 
    %t
     这就是时间啦
    %u
     得到了验证的访问者,否则就是"-"  
    %U
     访问的URL地址  
    %v
     服务器名称
    %D
     Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记 
    %T
     Time taken to process the request, in seconds,应该是访问发生的时间,以秒记

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334370-1-1.html 上篇帖子: 庖丁解”猫“——Tomcat Connector 源码分析 下篇帖子: 解压版Tomcat创建服务启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表