Log4j学习

参考链接:http://www.cnblogs.com/zzgno1/p/3977846.html

1.Log4j的使用核心在于:

  1)了解日志的优先级:ERROR > WARN > INFO > DEBUG

  2)得到记录器: private static final Logger logger = Logger.getLogger(name);name一般为当前类的全限定名

  3)根据日志需要的的级别调记录器logger对应的方法:比如logger.info(Object mesg),logger.warn(Object mesg)

2.Log4j使用的难点在于配置文件log4j.properties(配置文件为该名称就不需要显式的加载了)的配置

  1)先配置根Logger:

     log4j.rootLogger = [ level ] , appenderName1, appenderName2...其中level为日志级别,表示输出等于该级别或者比该级别更高优先级的日志信息。且该内容必须配置,不然会报“ No appenders could be found for logger”,从而失效。如果配置了多个appendName,那么多个appendName都会按照配置的输出策略来输出日志,互不影响

  2)再为每一个appenderName配置具体的输出策略:

     a. 先配置该appendName的输出地点,从而选择合适的Appender接口的实现类

     b.再确定日志输出的地点的情况下,再配置输出的格式,从而选择具体的Layout抽象类的子类

     c.如果有需要可以配置该appendName的日志级别。不配置的话使用根Looger中的日志级别的配置,那如果配置了,选择的规则是:哪个优先级高就按照哪个优先级输出日志

     d.如果是往文件里输出,需要配置输出文件的路径(即使配置的路径下的文件夹或文件不存在,它也会帮我们创建的),以及是追加还是替换。默认是追加,这也是最常用的

3.如果达到按照配置的日志级别,将日志分类输出,参考给出的链接就可以,核心是重写父类的 isAsSevereAsThreshold方法,按照优先级完全等于配置的优先级输出,而不是默认的等于或高于配置的优先级输出

4.将Log4j整合到WEB项目中使用,参考链接:http://swiftlet.net/archives/683,讲的很好

原文地址:https://www.cnblogs.com/wanjn/p/7429494.html