Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302994
  • 博文数量: 63
  • 博客积分: 1997
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 11:17
文章分类

全部博文(63)

文章存档

2010年(26)

2009年(37)

我的朋友

分类:

2010-03-09 16:17:32

因为一些特殊的原因,jobss前端不能加载nginx,或apache之类的服务,但是又要针对站点的日志文件进行分析,我们一般的日志分析工具,webalizer,awstats、webstrends都不能分析jobss下的server.log日志文件,这里我先了解一下jboss下的日志文件系统(log4j.xml)。

     log4j是一个优秀的开源的java日志系统,jboss内部也集成了它,在jboss下默认的只是对server做了每日日志,并没有对你部署的项目进行每日的日志构建,但我们可以通过修改log4j.xml文件来实现。log4j.xml 文件在jboss安装目录下的server\default\conf下,打开log4j.xml文件 



  这是log4j默认的配置,我们先熟悉一下 


   


   


   


     


     


     


     


     


       


       


     


        


              参数都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出): 


              %c     输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的围  如:"org.apache.elathen.ClassName", 


              %C{2}将输出elathen.ClassName 


                                                                                            


              %d     输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 %d{HH:mm:ss} 


              %l     输出日志事件发生位置,包括类目名、发生线程,在代码中的行数 


              %n     换行符 


              %m     输出代码指定信息,如info(“message”),输出message 


              %p     输出优先级,即 FATAL ,ERROR  


              %r     输出从启动到显示该log信息所耗费的毫秒数 


              %t     输出产生该日志事件的线程名 


       


       


     


   


  输出方式是:每天一个日志文件


   


   


     


     


     


     


     


     


     


     


     


       


       


       


         


   



上面是jbosslog4j的默认配置,对jbossserver进行日志记录,接下来我们添加web项目的日志,在log4j.xml 


  文件中把下面的配置信息加上去就可以了 



   


   


     


     


     


     


     


       


         


   


   


     


     


   


jboss的日志纪录方式有2种:

1、按日期进行纪录,

  


   

   

   


   


        


     


     

       

   ....................................................................................

..................................................................................

         


   

2、按日志文件大小进行纪录

  

    

    

    

    

    

 ……………………………………………………………

…………………………………………………………

    

  


让jboss生成可以分析的日志格式

修改jboss目录下\server\default\deploy\jbossweb-web.deployer\server.xml文件加入

   
        prefix="localhost_access_log." suffix=".log"
        pattern="%h %l %u %t %r %s %b"
        timestamp="true"
        directory="/backup/logs" resolveHosts="true" />

生成的日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。

其中具体配置参数如下所示:

className

实现的Java类名。必须被设置成org.apache.catalina.valves.AccessLogValve

directory

存放日志文件的目录,可以是相对路径或者绝对路径。如果使用相对路径,是指相对于 $CATALINA_HOME的路径。如果不指定directory属性,缺省值是“logs”(相对于 $CATALINA_HOME

pattern

需要记录的请求/响应不同信息域的格式布局。如果是“common”或者“combine”,说明选择标准格式。下面会有关于配置这个属性的更多信息。

prefix

日志文件名的前缀。如果没有指定,缺省值是“access_log.”。如果不想使用前缀,使用长度为0的字符串。

 

resolveHosts

将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址。

 

suffix

日志文件名的后缀。如果没有指定,缺省值是“”。如果不想使用后缀,使用长度为0的字符串。

 

rotatable

缺省值为true,用来决定日志是否翻转的标志。如果为false,日志文件永远不翻转,并且忽略fileDataFormat。要谨慎使用。

 

condition

打开条件日志。如果设置了这个属性,只有在ServletRequest.getAttribute()null的时候,才会为请求创建日志。比如,如果condition设为junk,则只有在Servlet.getAttribute("junk")==null的时候,才会记录这个请求。使用过滤器,可以很容易设置(或者取消设置)不同请求的属性。

fileDateFormat

允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。如果想每个小时翻转一次,将这个值设为yyyy-MM-dd.HH

pattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern

  • %a - 远端IP地址
  • %A - 本地IP地址
  • %b - 发送的字节数,不包括HTTP头,如果为0,使用""
  • %B - 发送的字节数,不包括HTTP
  • %h - 远端主机名(如果resolveHost=false,远端的IP地址)
  • %H - 请求协议
  • %l - identd返回的远端逻辑用户名(总是返回 '-'
  • %m - 请求的方法(GETPOST,等)
  • %p - 收到请求的本地端口号
  • %q - 查询字符串(如果存在,以 '?'开始)
  • %r - 请求的第一行,包含了请求的方法和URI
  • %s - 响应的状态码
  • %S - 用户的session ID
  • %t - 日志和时间,使用通常的Log格式
  • %u - 认证以后的远端用户(如果存在的话,否则为'-'
  • %U - 请求的URI路径
  • %v - 本地服务器的名称
  • %D - 处理请求的时间,以毫秒为单位
  • %T - 处理请求的时间,以秒为单位

这样我们生成的日志就可以被一些日志分析工具所分析,但是首先要明确一点,当我们把后台日志和前台日志都打印出来后,对于系统的影响肯定是有的,所以一般建议,jboss最好apache,nginx等服务一起使用,让他们来产生分析日志。


参考了http://blog.chinaunix.net/u/26978/showart_531103.html


阅读(4494) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~