`
lushuaiyin
  • 浏览: 675074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

log4j配置步骤 简化版

 
阅读更多

log4j配置祥解

第一步:加入log4j-1.2.8.jar到lib下。<wbr><br><br> 第二步:在CLASSPATH下建立log4j.properties。内容如下:<wbr><br><br> 1 log4j.rootCategory=INFO, stdout , R<br><br> 2<br><br> 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br><br> 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br><br> 5 log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n<br><br> 6<br><br> 7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender<br><br> 8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log<br><br> 9 log4j.appender.R.layout=org.apache.log4j.PatternLayout<br><br> 10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n<br><br> 11<br><br> 12 log4j.logger.com.neusoft=DEBUG<br><br> 13 log4j.logger.com.opensymphony.oscache=ERROR<br><br> 14 log4j.logger.net.sf.navigator=ERROR<br><br> 15 log4j.logger.org.apache.commons=ERROR<br><br> 16 log4j.logger.org.apache.struts=WARN<br><br> 17 log4j.logger.org.displaytag=ERROR<br><br> 18 log4j.logger.org.springframework=DEBUG<br><br> 19 log4j.logger.com.ibatis.db=WARN<br><br> 20 log4j.logger.org.apache.velocity=FATAL<br><br> 21<br><br> 22 log4j.logger.com.canoo.webtest=WARN<br><br> 23<br><br> 24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN<br><br> 25 log4j.logger.org.hibernate=DEBUG<br><br> 26 log4j.logger.org.logicalcobwebs=WARN<br><br> 第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。<wbr><br><br> 第四步:在要输出日志的类中加入相关语句:<wbr><br><br> 定义属性:protected final Log log = LogFactory.getLog(getClass());<wbr><br><br> 在相应的方法中:<wbr><br><br> if (log.isDebugEnabled())<br><br> {<br><br> log.debug(“System …..”);<br><br> }<br><br> 二、Log4j说明<wbr><br><br> 1 log4j.rootCategory=INFO, stdout , R<br><br> 此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。<wbr><br><br> 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br><br> 此句为定义名为stdout的输出端是哪种类型,可以是<wbr><br><br> org.apache.log4j.ConsoleAppender(控制台),<wbr><br><br> org.apache.log4j.FileAppender(文件),<wbr><br><br> org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),<wbr><br><br> org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)<wbr><br><br> org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)<wbr><br><br> 具体讲解可参照第三部分定义配置文件中的Appender。<wbr><br><br> 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br><br> 此句为定义名为stdout的输出端的layout是哪种类型,可以是<wbr><br><br> org.apache.log4j.HTMLLayout(以HTML表格形式布局),<wbr><br><br> org.apache.log4j.PatternLayout(可以灵活地指定布局模式),<wbr><br><br> org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),<wbr><br><br> org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)<wbr><br><br> 具体讲解可参照第三部分定义配置文件中的Layout。<wbr><br><br> 5 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n<br><br> 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:<wbr><br><br> %m 输出代码中指定的消息<wbr><br><br> %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL<wbr><br><br> %r 输出自应用启动到输出该log信息耗费的毫秒数<wbr><br><br> %c 输出所属的类目,通常就是所在类的全名<wbr><br><br> %t 输出产生该日志事件的线程名<wbr><br><br> %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”<wbr><br><br> %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921<wbr><br><br> %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。<wbr><br><br> [QC]是log信息的开头,可以为任意字符,一般为项目简称。<wbr><br><br> 输出的信息<wbr><br><br> [TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'<br><br> 具体讲解可参照第三部分定义配置文件中的格式化日志信息。<wbr><br><br> 7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender<br><br> 此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。<wbr><br><br> 8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log<br><br> 此句为定义名为R的输出端的文件名为D:\Tomcat 5.5\logs\qc.log<wbr><br><br> 可以自行修改。<wbr><br><br> 9 log4j.appender.R.layout=org.apache.log4j.PatternLayout<br><br> 与第4行相同。<wbr><br><br> 10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n<br><br> 与第5行相同。<wbr><br><br> 12 log4j.logger.com. neusoft =DEBUG<br><br> 指定com.neusoft包下的所有类的等级为DEBUG。<wbr><br><br> 可以把com.neusoft改为自己项目所用的包名。<wbr><br><br> 13 log4j.logger.com.opensymphony.oscache=ERROR<br><br> 14 log4j.logger.net.sf.navigator=ERROR<br><br> 这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。<wbr><br><br> 15 log4j.logger.org.apache.commons=ERROR<br><br> 16 log4j.logger.org.apache.struts=WARN<br><br> 这两句是struts的包。<wbr><br><br> 17 log4j.logger.org.displaytag=ERROR<br><br> 这句是displaytag的包。(QC问题列表页面所用)<wbr><br><br> 18 log4j.logger.org.springframework=DEBUG<br><br> 此句为Spring的包。<wbr><br><br> 24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN<br><br> 25 log4j.logger.org.hibernate=DEBUG<br><br> 此两句是hibernate的包。<wbr><br><br> 以上这些包的设置可根据项目的实际情况而自行定制。<wbr><br><br> 三、log4j详解<wbr><br><br> 1、定义配置文件<wbr><br><br> Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:<wbr><br><br> ①、配置根Logger<wbr><br><br> Logger 负责处理日志记录的大部分操作。<wbr><br><br> 其语法为:<wbr><br><br> log4j.rootLogger = [ level ] , appenderName, appenderName, …<br><br> 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。ALL:打印所有的日志,OFF:关 闭所有的日志输出。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。<wbr><br><br> ②、配置日志信息输出目的地 Appender<wbr><br><br> Appender 负责控制日志记录操作的输出。<wbr><br><br> 其语法为:<wbr><br><br> log4j.appender.appenderName = fully.qualified.name.of.appender.class<br><br> log4j.appender.appenderName.option1 = value1<br><br> …<br><br> log4j.appender.appenderName.optionN = valueN<br><br> 这里的appenderName为在①里定义的,可任意起名。<wbr><br><br> 其中,Log4j提供的appender有以下几种:<wbr><br><br> org.apache.log4j.ConsoleAppender(控制台),<wbr><br><br> org.apache.log4j.FileAppender(文件),<wbr><br><br> org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),<wbr><br><br> org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件。<wbr><br><br> org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)<wbr><br><br> 例如:log4j.appender.stdout=org.apache.log4j.ConsoleAppender<wbr><br><br> 定义一个名为stdout的输出目的地,ConsoleAppender为控制台。<wbr><br><br> ③、配置日志信息的格式(布局)Layout<wbr><br><br> Layout 负责格式化Appender的输出。<wbr><br><br> 其语法为:<wbr><br><br> log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br><br> log4j.appender.appenderName.layout.option1 = value1<br><br> …<br><br> log4j.appender.appenderName.layout.optionN = valueN<br><br> 其中,Log4j提供的layout有以下几种:<wbr><br><br> org.apache.log4j.HTMLLayout(以HTML表格形式布局),<wbr><br><br> org.apache.log4j.PatternLayout(可以灵活地指定布局模式),<wbr><br><br> org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),<wbr><br><br> org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)<wbr><br><br> 2、格式化日志信息<wbr><br><br> Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:<wbr><br><br> %m 输出代码中指定的消息<wbr><br><br> %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL<wbr><br><br> %r 输出自应用启动到输出该log信息耗费的毫秒数<wbr><br><br> %c 输出所属的类目,通常就是所在类的全名<wbr><br><br> %t 输出产生该日志事件的线程名<wbr><br><br> %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”<wbr><br><br> %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921<wbr><br><br> %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。<wbr><br><br> 3、在代码中使用Log4j<wbr><br><br> 我们在需要输出日志信息的类中做如下的三个工作:<wbr><br><br> 1、导入所有需的commongs-logging类:<wbr><br><br> import org.apache.commons.logging.Log;<br><br> import org.apache.commons.logging.LogFactory;<br><br> 2、在自己的类中定义一个org.apache.commons.logging.Log类的私有静态类成员:<wbr><br><br> private final Log log = LogFactory.getLog(getClass());<br><br> LogFactory.getLog()方法的参数使用的是当前类的class。<wbr><br><br> 3、使用org.apache.commons.logging.Log类的成员方法输出日志信息:<wbr><br><br> if (log.isDebugEnabled())<br> {<br> log.debug("111");<br> }<br> if (log.isInfoEnabled())<br> {<br> log.info("222");<br> }<br> if (log.isWarnEnabled())<br> {<br> log.warn("333");<br> }<br> if (log.isErrorEnabled())<br> {<br> log.error("444");<br> }<br> if (log.isFatalEnabled())<br> {<br> log.fatal("555")<br> } </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

分享到:
评论

相关推荐

    微软活动目录管理管理简明手册

    R5 I* ~: k6 g1 B$ @4 Z- j' B ( y: ] o$ r9 C( \/ x5 b @: a站点(Site)是由一个或多个IP子网中的一组计算机,确保目录信息的有效交换,站点中的计算机需要很好地连接,尤其是子网内的计算机。站点和域名称空间...

    ssh(structs,spring,hibernate)框架中的上传下载

     代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. 4. destroy-method="close"> 5. 6. 7. 8. 9. 10. !-- Hibernate会话工厂配置 //--> 11. 12. class="org.springframework.orm...

    MySQL 5.1参考手册

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    MySQL 5.1参考手册中文版

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...

    MySQL 5.1参考手册 (中文版)

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    MySQL5.1参考手册官方简体中文版

    原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL partner GreatLinux, Beijing, People's Republic of China. GreatLinux Inc. 北京万里开源软件有限...

    MySQL 5.1中文手冊

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    mysql官方中文参考手册

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    MYSQL中文手册

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...

    MySQL 5.1官方简体中文参考手册

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    mysql5.1中文手册

    MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度...

    Toad 使用快速入门

    为了简化操作,用户可以在浏览窗口操作数据库对象。 SQL 编辑器: SQL 编辑器的主要功能是编辑、运行和调整SQL语句。TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。例如,简单地生成...

    新版Android开发教程.rar

    HTC HTC HTC HTC Dream/G1 Dream/G1 Dream/G1 Dream/G1 具体配置 硬件 3.17 英寸 HVGA (480 x 320) ; 1150mAh 电池 ;高通 528Mhz 7201 处理器 ; 64MB RAM 、 128MB ROM ; 1GB MicroSD 卡 ; QWERTY 全键盘; 310...

Global site tag (gtag.js) - Google Analytics