设为首页 加入收藏

TOP

SSH框架中配置log4j的方法(一)
2014-11-24 14:28:25 来源: 作者: 【 】 浏览:0
Tags:SSH 框架 配置 log4j 方法

1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下。
2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。
3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。


在web.xml中的详细设定如下:


说明:


其中第二部分就是能够动态修改log4j.properties的关键,容器会每60秒扫描log4j的配置文件 。对 于log4j的配置文件如何写,这就不多说了,大家可以去google,有一点就是我们如果用RollingFileAppender或者 FileAppender时,可以通过${webapp.root}来定位到服务器的发布的该项目下,这是spring把web目录的路径压入到了 webapp.root的系统变量。然后,在log4j.properties 里就可以这样定义logfile位置log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log 如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey。当我们定义完log4j.properties后,剩下的就是在需要记录的class中new 出Logger了。


1 log4j.rootCategory=INFO, stdout , R


此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为


OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的


log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。


3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender


此句为定义名为stdout的输出端是哪种类型,可以是


具体讲解可参照第三部分定义配置文件中的Appender。


4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout


  此句为定义名为stdout的输出端的layout是哪种类型,可以是


  具体讲解可参照第三部分定义配置文件中的Layout。


5 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n


  如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:


%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。


[QC]是log信息的开头,可以为任意字符,一般为项目简称。


  输出的信息


[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'


  具体讲解可参照第三部分定义配置文件中的格式化日志信息。


7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender


  此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。 8 log4j.appender.R.File=D: \\Tomcat 5.5 \\logs\\qc.log


  此句为定义名为R的输出端的文件名为D: \\Tomcat 5.5 \\logs\\qc.log可以自行修改。


9 log4j.appender.R.layout=org.apache.log4j.PatternLayout


  与第4行相同。


10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n


  与第5行相同。


12 log4j.logger.com. neusoft =DEBUG


  指定com.neusoft包下的所有类的等级为DEBUG。


  可以把com.neusoft改为自己项目所用的包名。


13 log4j.logger.com.opensymphony.oscache=ERROR


14 log4j.logger.net.sf.navigator=ERROR


  这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。


15 log4j.logger.org.apache.commons=ERROR


16 log4j.logg

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Struts2为应用指定多个配置文件和.. 下一篇Java处理字符串搜索嵌套结构的方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: