log4j配置详解

来源:互联网 发布:知乎用户数量 编辑:程序博客网 时间:2024/06/14 09:50

一、在lib下导入commons-logging-1.0.4.jar和log4j-1.2.14.jar两个包

二、在src中package下新建log4j.properties

【配置文件】

#log4j.rootCategory=INFO,stdout,file#配置根Loggerlog4j.rootLogger=INFO,stdout,file#配置日志信息输出目的地Appender#定义一个名为 stdout 的输出目的地, ConsoleAppender 为控制台log4j.appender.stdout=org.apache.log4j.ConsoleAppender#日志输出格式Layout#PatternLayout 可以灵活地指定布局模式log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[QC]%p[%t]%C.%M(%L)|%m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppender#日志文件的输出路径log4j.appender.file.File=E\:/logs/rizhi.log  log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.Threshold = DEBUG ## 输出DEBUG级别以上的日志log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n#log4j.appender.file.layout.ConversionPattern=%d-[TS]%p%t%c-%m%nlog4j.logger.com.neusoft=DEBUG#如果项目中没有配置EHCache(缓存),则配置以下两句为ERRORlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERROR#struts配置log4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARN#displaytag 配置log4j.logger.org.displaytag=ERROR#spring配置log4j.logger.org.springframework=DEBUG#ibatis配置log4j.logger.com.ibatis.db=WARN#hibernate配置log4j.logger.org.hibernate=DEBUGlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.logicalcobwebs=WARNlog4j.logger.org.apache.velocity=FATALlog4j.logger.com.canoo.webtest=WARN
说明:
1、log4j.rootLogger与log4j.rootCategory区别:
 rootLogger是新的使用名称,对应Logger类;而rootCategory是旧的使用名称,对应原来的Category类。

Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用

2、log4j 的配置文件
Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 Java 特性文件 lg4j.properties (键 = 值)。 

lg4j.properties 文件作为作为常用的配置文件的方法如下: 

2.1、配置根 Logger 

其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, … 

其中【level】是日志记录的优先级,共有5级:

OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别
Log4j 建议只使用四个级别,优先级从高到低分别:
ERROR 、 WARN 、 INFO 、 DEBUG
只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。 ALL: 打印所有的日志, OFF :关闭所有的日志输出。 appenderName 就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

2、2  配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。
其语法为: 

log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 log4j.appender.appenderName.optionN = valueN 

 Appender 为日志输出目的地,Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 

2、3  Layout:日志输出格式,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 
2、4   格式化日志信息 
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
    %m   输出代码中指定的消息  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL   %r   输出自应用启动到输出该log信息耗费的毫秒数   %c   输出所属的类目,通常就是所在类的全名   %t   输出产生该日志事件的线程名   %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”   %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 2         8 , 921    %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 


三、src下package中新建LogTest.java

【代码】

package test;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/**  * 测试Log4j  *@author 郑学仕 *@version 2013-12-16 */  public class LogTest {      private static final Log LOG = LogFactory.getLog(LogTest.class);      public void log(){         LOG.debug("Debug info...");         LOG.info("Info info...");         LOG.warn("Warn info...");         LOG.error("Error info...");         LOG.fatal("Fatal info...");      }    public static void main(String[] args) {          LogTest test = new LogTest();          test.log();      }  } 


0 0
原创粉丝点击