1.1 Log4j的三大核心组件
- Loggers(记录器) 日志的类别
- Appenders (输出源) 日志输出的目的地
- Layouts(布局) 日志输出的样式
1.2 Loggers (记录器)
- Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL
- DEBUG < INFO < WARN < ERROR < FATAL ,分别用来指定这条日志信息的重要程度
1.3 Appenders(输出源)
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
1.4 Layouts(布局)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
1.5 log4j的配置文件
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
#自定义log4j输出器
log4j.logger.mylogger=error,myappender
log4j.appender.myappender=org.apache.log4j.FileAppender
log4j.appender.myappender.File=f://logs/app.log
log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
1.6 常用的日志门面
- slf4j(hibernate中默认使用的日志门面)
- logging(apache 开源的日志门面)
1.7 使用日志门面编程
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
import org.apache.commons.logging.Log;//日志门面
import org.apache.commons.logging.LogFactory;//日志门面
public class LoggerTest {
public static void main(String[] args) {
Log log = LogFactory.getLog("myappender");
log.error("e1");
log.debug("e2");
}
}