一、log4j使用
一般情况下Log4j总是和Apache Commons-logging配套使用,XXX是引入log对象的实例类名。
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//推荐方式
private final static Log log = LogFactory.getLog(XXX.class);
//其他方式
final static Logger logger = Logger.getLogger(XXX.class);
二、概念介绍
Logger - 日志写出器 ,供程序员输出日志信息
Appender - 日志目的地 ,把格式化好的日志信息输出到指定的地方去
Layout - 日志格式化器 ,用来把程序员的 logging request 格式化成字符串
Log4j 由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式 。日志信息的优先级从高到低有 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG ,TRACE分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
最最重要的两个是Logger和Appender(请参考Log4J手册),其实是继承层次以及输出控制。
首先Log4J中总是存在一个rootLogger,即使没有显示配置也是存在的,并且默认输出级别为DEBUG。
其它的logger都继承自这个rootLogger(如果其他logger未单独定义其输出级别)。
如果采用XML进行log4j配置,则log4j:configuration相当于rootLogger,可以通过threshold指定最低的输出级别。注意其他appender或logger中定义的级别如下低于此级别,则以此级别为主
三、Debug level
Debug Level:
We have used DEBUG with both the appenders. All the possible options are:
TRACE
DEBUG
INFO
WARN
ERROR
FATAL
四、配置样例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false" threshold="error">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.err" />
<param name="threshold" value="info" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="[%d][%-5p][%c:%L] - %m%n" />
</layout>
</appender>
<logger name="org.apache">
<level value="INFO" />
</logger>
<logger name="org.springframework">
<level value="INFO" />
</logger>
<root>
<level value="All" />
<appender-ref ref="CONSOLE" />
</root>
</log4j:configuration>