log4j配置详解

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

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

【配置文件】

#log4j.rootCategory=INFO,stdout,file
#配置根Logger
log4j.rootLogger=INFO,stdout,file
#配置日志信息输出目的地Appender
#定义一个名为 stdout 的输出目的地, ConsoleAppender 为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#日志输出格式Layout
#PatternLayout 可以灵活地指定布局模式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC]%p[%t]%C.%M(%L)|%m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#日志文件的输出路径
log4j.appender.file.File=E\:/logs/rizhi.log  
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.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%n

log4j.logger.com.neusoft=DEBUG
#如果项目中没有配置EHCache(缓存),则配置以下两句为ERROR
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
#struts配置
log4j.logger.org.apache.commons=ERROR
log4j.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=DEBUG
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN

log4j.logger.org.logicalcobwebs=WARN

log4j.logger.org.apache.velocity=FATAL
log4j.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();  
    }  
} 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值