log4j基础-属性文件和使用

并非任何操作都要写日志,我会用日志记录登录、登出、银行交易、多平台数据交互等操作,因功能而定。

log4j的配置分三类(我知道的),1:属性文件log4j.properties;2:xml文件log4j.xml;3:类配置。

这里只介绍属性文件的使用。在此之前,先了解一下日志的输出方式和优先级:

  org.apache.log4j.ConsoleAppender(控制台)
  org.apache.log4j.FileAppender(文件)
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

优先级:OFF > FATAL > ERROR > WARN > INFO > DEBUG,详细配置会后续给出,下面只是基础配置:

log4j.rootLogger=info, myOut

### log message###
log4j.appender.myOut=org.apache.log4j.ConsoleAppender
log4j.appender.myOut.Target=System.out
log4j.appender.myOut.layout=org.apache.log4j.PatternLayout
log4j.appender.myOut.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

有了这些,日志就可以使用了,rootLogger定义,比info级别低的日志内容不会被输出,也就是debug级别的不会被输出;日志将根据myOut进行输出。

log4j.appender定义myOut(这个名字可以自定义,一一对应即可)的输出方式、输出样式。这里是控制台输出;对于样式,可以去网上搜,找到一个合适的就用着吧,不要花哨。

如何使用:

import org.apache.log4j.Logger;

Logger log = Logger.getLogger(XX.Class);// 根据CLASS输出

Logger log = Logger.getLogger(this.getClass());// 当前实例的CLASS,本质同上

Logger log = Logger.getLogger("属性文件中自定义");// 后续文章有讲解

 

log.debug("debug");//不会输出,因为属性文件的级别是info

log.info("info");//根据样式,输出16:14:39,843  INFO LogTest:14 - info

log.error("error");//优先级高于info的会输出,输出16:15:40,078 ERROR LogTest:15 - error

 

针对包或类的日志输出,属性文件中追加一下配置

log4j.logger.java.util.ArrayList=DEBUG

log4j.logger.com.log.test=DEBUG

以上,com.log.test是自定义包,ArrayList不用多说了吧,测试如下:

Logger logA = Logger.getLogger(ArrayList.Class);

log.info("log_info");//16:14:39,843  INFO LogTest:14 - log_info

log.debug("debug");//无输出

logA.debug("array_debug");// 16:15:40,078 DEBUG ArrayList:16 - array_debug

可以看到,虽然全局级别为info,但是针对ArrayList配置后,ArrayList的debug是可以显示的。

 

基本配置和使用先到这,后续文章会讨论其他问题,如日志写入到文件、自定义配置。

你可能感兴趣的:(apache,log4j,xml)