备案域名网站大全,网站设计规划的一般流程,动画设计就业方向和发展前景,如何做医药类网站[来源#xff1a;Java |作者#xff1a;Java |时间#xff1a;2007-7-20 |去论坛]--在强调可重用组件开发的今天#xff0c;除了自己从头到尾开发一个可重用的日志操作类外#xff0c;Apache为我们提供了一个强有力的日志操作包-Log4j。Log4j是Apache的一个开放源代码项目…[来源Java |作者Java |时间2007-7-20 |去论坛]--在强调可重用组件开发的今天除了自己从头到尾开发一个可重用的日志操作类外Apache为我们提供了一个强有力的日志操作包-Log4j。Log4j是Apache的一个开放源代码项目通过使用Log4j我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是这些可以通过一个配置文件来灵活地进行配置而不需要修改应用的代码。此外通过Log4j其他语言接口您可以在C、C、.Net、PL/SQL程序中使用Log4j其语法和用法与在Java程序中一样使得多语言分布式系统得到一个统一一致的日志组件模块。而且通过使用各种第三方扩展您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。说明下面分为三部分第一部分讲解如何配置log4j第二部分为对log4j.properties配置文件中的各个属性的讲解第三部分为对log4j的详细讲解如果只想配置上log4j那么只需要看前两个部分就可以如果想对log4j深入了解则还需看第三部分。一、Log4j配置第一步加入log4j-1.2.8.jar到lib下。第二步在CLASSPATH下建立log4j.properties。内容如下1 log4j.rootCategoryINFO, stdout , R23 log4j.appender.stdoutorg.apache.log4j.ConsoleAppender4 log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout5 log4j.appender.stdout.layout.ConversionPattern[QC] %p [%t] %C.%M(%L) | %m%n67 log4j.appender.Rorg.apache.log4j.DailyRollingFileAppender8 log4j.appender.R.FileD:\Tomcat 5.5\logs\qc.log9 log4j.appender.R.layoutorg.apache.log4j.PatternLayout10 log4j.appender.R.layout.ConversionPattern%d-[TS] %p %t %c - %m%n1112 log4j.logger.com.neusoftDEBUG13 log4j.logger.com.opensymphony.oscacheERROR14 log4j.logger.net.sf.navigatorERROR15 log4j.logger.org.apache.commonsERROR16 log4j.logger.org.apache.strutsWARN17 log4j.logger.org.displaytagERROR18 log4j.logger.org.springframeworkDEBUG19 log4j.logger.com.ibatis.dbWARN20 log4j.logger.org.apache.velocityFATAL2122 log4j.logger.com.canoo.webtestWARN2324 log4j.logger.org.hibernate.ps.PreparedStatementCacheWARN25 log4j.logger.org.hibernateDEBUG26 log4j.logger.org.logicalcobwebsWARN第三步相应的修改其中属性修改之前就必须知道这些都是干什么的在第二部分讲解。第四步在要输出日志的类中加入相关语句定义属性protected final Log log LogFactory.getLog(getClass());在相应的方法中if (log.isDebugEnabled()){log.debug(“System …..”);}欢迎光临学网,收藏本篇文章[1] [2] [3] [4]$False$二、Log4j说明1 log4j.rootCategoryINFO, 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.stdoutorg.apache.log4j.ConsoleAppender此句为定义名为stdout的输出端是哪种类型可以是org.apache.log4j.ConsoleAppender(控制台)org.apache.log4j.FileAppender(文件)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)具体讲解可参照第三部分定义配置文件中的Appender。4 log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout此句为定义名为stdout的输出端的layout是哪种类型可以是org.apache.log4j.HTMLLayout(以HTML表格形式布局)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)具体讲解可参照第三部分定义配置文件中的Layout。5 log4j.appender.stdout.layout.ConversionPattern [QC] %p [%t] %C.%M(%L) | %m%n如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern打印参数如下%m输出代码中指定的消息%p输出优先级即DEBUGINFOWARNERRORFATAL%r输出自应用启动到输出该log信息耗费的毫秒数%c输出所属的类目通常就是所在类的全名%t输出产生该日志事件的线程名%n输出一个回车换行符Windows平台为“rn”Unix平台为“n”%d输出日志时间点的日期或时间默认格式为ISO8601也可以在其后指定格式比如%d{yyyy MMM dd HH:mm:ss,SSS}输出类似2002年10月18日221028921%l输出日志事件的发生位置包括类目名、发生的线程以及在代码中的行数。[QC]是log信息的开头可以为任意字符一般为项目简称。输出的信息[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean MyAutoProxy具体讲解可参照第三部分定义配置文件中的格式化日志信息。7 log4j.appender.Rorg.apache.log4j.DailyRollingFileAppender此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。8 log4j.appender.R.FileD:\Tomcat 5.5\logs\qc.log此句为定义名为R的输出端的文件名为D:\Tomcat 5.5\logs\qc.log可以自行修改。9 log4j.appender.R.layoutorg.apache.log4j.PatternLayout与第4行相同。10 log4j.appender.R.layout.ConversionPattern%d-[TS] %p %t %c - %m%n与第5行相同。文章整理:学网http://www.xue5.com (本站) [1] [2] [3] [4]12 log4j.logger.com. neusoft DEBUG指定com.neusoft包下的所有类的等级为DEBUG。可以把com.neusoft改为自己项目所用的包名。13 log4j.logger.com.opensymphony.oscacheERROR14 log4j.logger.net.sf.navigatorERROR这两句是把这两个包下出现的错误的等级设为ERROR如果项目中没有配置EHCache则不需要这两句。15 log4j.logger.org.apache.commonsERROR16 log4j.logger.org.apache.strutsWARN这两句是struts的包。17 log4j.logger.org.displaytagERROR这句是displaytag的包。(QC问题列表页面所用)18 log4j.logger.org.springframeworkDEBUG此句为Spring的包。24 log4j.logger.org.hibernate.ps.PreparedStatementCacheWARN25 log4j.logger.org.hibernateDEBUG此两句是hibernate的包。以上这些包的设置可根据项目的实际情况而自行定制。