JBoss Access log的配置

我的梦境 提交于 2020-02-16 01:01:08

在做WEB应用时,有时候希望能够记录用户的访问,分析访问用户的地域以及用户访问行为,JBoss提供了一种方式能够很方便的记录用户的访问日志,但是默认情况下这个功能是没有启用的,下面讲述如何启用这个功能。

  1. 修改${JBOSS_HOME}/server/defaul/deploy/jbossweb.sar/server.xml找到如下代码:
Xml代码 
  1.  <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"   
  2.               prefix="localhost_access_log." suffix=".log"   
  3. pattern="%h %l %u %t %r %s %b" directory="${jboss.server.home.dir}/log"  
  4.                resolveHosts="false" />  
  1. 上述代码默认情况下是注释的,将注释去掉,就打开了访问日志记录阀。
  2. 参数/选项说明:

    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”;

 

pattern的详细说明

 

    %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    处理请求的时间,以秒为单位

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!