log4j
1.1 简介
Log4j是一个由Java编写可靠、灵活的日志框架,是Apache旗下的一个开源项目;现如今,Log4j已经被移植到了C、C++、Python等语言中,服务更多的Developer;
使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;通过定义不同的日志级别,可以更加精确的控制日志的生成过程,从而达到我们应用的需求;这一切,都得益于一个灵活的配置文件,并不需要我们更改代码。
1.2 log4j结构
在Log4j中,主要由三个重要组件构成:
Logger:日志对象,负责捕捉日志记录信息;
Logger对象是用来取代System.out或者System.err的日志输出器,负责日志信息的输出;其中,log4j日志框架提供了info、error、debug等API供Developer使用;
与commons-logging相同,log4j也有日志等级的概念;每一个logger对象都会分配一个等级,未被分配等级的logger则继承根logger的级别,进行日志的输出;每个日志对象方法的请求也有一个等级,如果方法请求的等于大于当前logger对象的等级,则该请求会被处理输出,否则该请求被忽略;
log4j在Level类中定义了7个等级,关系如下:
Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
每个等级,具体含义如下:
ALL:打开所有日志;
DEBUG:适用于代码调试期间;
INFO:适用于代码运行期间;
WARN:适用于代码会有潜在错误事件;
ERROR:适用于代码存在错误事件;
FATAL:适用于严重错误事件;
OFF:关闭所有日志;
Appender:日志输出目的地,负责把格式好的日志信息输出到指定地方,可以是控制台、磁盘文件等;
每个日志对象,都有一个对应的appender,每个appender代表着一个日志输出目的地;
其中,log4j有以下几种appender可供选择:
ConsoleAppender:控制台;
FileAppender:磁盘文件;
DailyRollingFileAppender:每天产生一个日志磁盘文件;
RollingFileAppender:日志磁盘文件大小达到指定尺寸时产生一个新的文件;
Layout:日志格式化器,负责发布不同风格的日志信息;
每个appender和一个Layout相对应,appende负责把日志信息输出到指定的地点,而Layout则负责把日志信息按照格式化的要求展示出来;
其中,log4j有以下几种Layout可供选择:
HTMLLayout:以html表格形式布局展示;
PatternLayout:自定义指定格式展示;
SimpleLayout:包含日志信息的级别和信息字符串;
TTCCLayout:包含日志产生的时间、线程、类别等等信息;
1.3 使用
首先,需要在应用的pom.xml中添加依赖:
log4j
log4j
1.2.17
其次,声明测试代码:
public class log4jDemo {
Logger log= Logger.getLogger(log4jDemo.class);
@Test
public void test(){
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error nihao 你好!");
log.fatal("Fatal Message!");
}
}
最后,在classpath下声明配置文件:log4j.properties 或者 log4j.xml;
例1:log4j.properties:
log4j.rootLogger = INFO, FILE, CONSOLE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=e:/log.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold = DEBUG
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4