log4j是一个非常优秀的日志操作组件,它不仅能够替代System.out.println()输出调试信息,而且还能通过配置日志级别,根据不同的需求,输出不同级别的信息,因此可以将软件的调试与运行阶段区分开,以往采用的方式是将Debug时输出的语句逐个删除,当项目变得庞大时,这项工作会花费大量的成本,而Log4j则省去了这部分的成本,只需要在log4j的配置文件中更改输出级别即可。它还能定义不同的输出环境,可以是控制台,也可以是文件,同时还能定义输出信息的格式,这使信息的输出更加灵活高效。
通过这几天的学习,基本了解了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());
分享到:
相关推荐
该文档包括log4j的介绍、log4j的配置文件以及配置参数详解、log4j在程序中的使用、以及log4j配置示例四大部分。
log4j配置详解,本人亲自测试总结,新人必备啊
包含几个log4j包的几个版本,大家可以各取所需
Log4j使用总结.docLog4j使用总结.doc Log4j使用总结.docLog4j使用总结.doc Log4j使用总结.docLog4j使用总结.doc
这个文档是本人自己打开log4j源码自己总结的,希望对大家有用。
log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记log4j学习笔记
日志开发框架 总结归纳 log4j log4j2
本人在项目中总结的一点小经验 关于log4j动态配置的一些方法和心得
好文共欣赏: ...log4j.xml log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭Hibernate启动时的DEBUG信息.htm
log4j.properties配置详解,长期总结,以完善
log4j配置详解,总结资料,log4j配置详解,总结资料
Log4j经典总结,对于Java日志的管理经典介绍
Log4j 组件 使用 Logback 由Log4j之父做的另一个开源项目,业界中称作logj后浪,一个可靠、同样且灵活的java日志框架。 Logback组件 Logback配置 Logback输出格式 使用 Log4j2 特征 使用 日志门面技术 JCL 使用 SLF4...
对log4j的一个总结,写的很不错,很全,包括把日志写入到控制台,文件,数据库,Socket等等
本人将Eclipse 环境下log4j需要的jar包及配置文件以及简单的使用步骤总结了一下,希望对大家有帮助
maven+Springmvc+spring+mybatis+log4j的Demo,企业级三层架构。eclipse项目源代码。个人学习总结。
java资料集合 js css log2j 报表 java常用类 GUI项目java资料集合 js css log2j 报表 java常用类 GUI项目java资料集合 js css log2j 报表 java常用类 GUI项目 终于等到网速好了 学了java这段时间还没来得及总结 今天...
非常详细的log4j的描述,配置,和各种配置选项.
本文内容是自己参考 V512免费视频的讲解总结出来的,详细介绍了Log4j的用法。Log4j核心是 Logger,Appender,Layout里面都有详细介绍。
通过自己学习和在工作中的总结以及在网上查找相关资料,总结了这个文档,希望对大家有帮助