浏览 4053 次
锁定老帖子 主题:总结一下log4j
精华帖 (4) :: 良好帖 (4) :: 新手帖 (18) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-25
通过这几天的学习,基本了解了Log4j的用法: 1.首先需要配置的是Logger,这是为了区别不同的Logger.Logger中有一种很重要,就是rootLogger。因为它的一些属性会被普通的logger继承下来,它的定义如下: log4j.rootLogger=INFO,console, file 对于普通的logger定义格式如下: log4j.logger.loggerName=WARN,console 这里的INFO、WARN是指日志的级别,console、file是指日志的Appender,可以理解为日志的输出地。 可以定义多个不同的Appender,当然这里的file,console只是一个指代符号,具体file代表哪个Appender来执行,还需要对其进行配置。 日志的级别常用的有五种,从低到高顺序如下:DEBUG<INFO<WARN<ERROR<FATAL。配置了日志级别,比如说WARN,将会输出不小于WARN级别的日志。 日志的继承关系,我在这里只重点描述一下rootLogger与普通Logger之前的继承关系,对于普通Logger之前的继承关系可以查看相关文档。 如果已经配置了rootLogger,那么对于普通的Logger而言,如果没有配置日志级别,如下: log4j.rootLogger=INFO,console, file log4j.logger.testLogger=,console 那么这个testLogger将会继承rootLogger的日志级别,在这里为INFO。 对于Appender而言,普通Logger是会完全继承rootLogger,对于上面这个配置,如果采用testLogger输出信息,你会发现,在console下面会输出两遍相同的信息,原因就在这里。此外在所配置的文件中也会有输出。 2.然后就是针对Appender的配置,注意Appender是指输出地,一个Logger可以使用不同的Appender,而一个Appender也可以供多个Logger使用。 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=c:%c,m:%m,n:%n,r:%r,d:%d{DATE}.\n 这里的console即为上面配置的logger。上面三行中,第一行配置的是对象Logger的Appender,即输出源。第二行配置的是显示的模式类型,一般的配置成SimpleLayout,这里配置成PatternLayout,是为了配置输出的形式,下面的log4j.appender.console.layout.ConversionPattern是配置的输出格式。具体的查查文档就OK了。 Log4j总的来说,使用起来还是挺方便的,功能挺强大,使用很方便,在程序中,如下: 1.首先要根据配置文件得到一个Logger对象,对于rootLogger,可以采用以下两种方式: private Logger logger = Logger.getLogger("root"); //the former is the same as the following : private Logger logger = Logger.getRootLogger(); 如果是普通的Logger,也有两种方式可供采用: private Logger logger = Logger.getLogger("testLogger"); //the former is the same as the following : private Logger logger = Logger.getLogger("log4j.logger.testLogger"); 2.想要输出不同级别的语句可以采用如下语句: logger.debug("this is a debug:" + logger.getName()); logger.info("this is a info:" + logger.getName()); logger.warn("this is a warn:" + logger.getName()); logger.error("this is a error:" + logger.getName()); logger.fatal("this is a fatal:" + logger.getName()); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-07-26
好文章多多发表
|
|
返回顶楼 | |