1、概述:Log4j是Apache的一个开源项目,log4j是一个用Java编写的可靠,快速和灵活的日志框架(API)。
Log4j中有三个主要组成部分:
appender : 负责发布日志信息,以不同的首选目的地
layout: 负责格式化不同风格的日志信息
2、导包: org.apache.log4j 的jar包
3、配置文件:
#rootLogger的创建
log4j.rootLogger=DEBUG, name1, name2, name3, name4
#创建一个名称为name1的appender,ConsoleAppender是输出日志到控制台
log4j.appender.name1=org.apache.log4j.ConsoleAppender
#说明name1的appender使用PatternLayout布局
log4j.appender.name1.layout=org.apache.log4j.PatternLayout
#ConversionPattern是定义日志输出的具体格式
log4j.appender.name1.layout.ConversionPattern=[%p]\t{%d}\t{%l} --> %m%n
#创建一个名称为name2的appender,FileAppender是输出日志到文件中
log4j.appender.name2=org.apache.log4j.FileAppender
#输除文件的路径
log4j.appender.name2.file=c:/var/name2.log
#说明name2的appender使用PatternLayout布局
log4j.appender.name2.layout=org.apache.log4j.PatternLayout
log4j.appender.name2.layout.ConversionPattern=[%p]\t{%d}\t{%l} --> %m%n
#创建一个名称为name3的appender,DailyRollingFileAppender是输出日志到文件中,并且每天都会刷一个新的日志文件
log4j.appender.name3=org.apache.log4j.DailyRollingFileAppender
#输除文件的路径
log4j.appender.name3.file=c:/var/name3.log
#每天生出出来的文件名格式为:name3.log.yyyy-MM-dd
log4j.appender.ftout.datePattern='.'yyyy-MM-dd
#说明name3的appender使用PatternLayout布局
log4j.appender.name3.layout=org.apache.log4j.PatternLayout
log4j.appender.name3.layout.ConversionPattern=[%p]\t{%d}\t{%l} --> %m%n
#创建一个名称为name4的appender,RollingFileAppender是输出日志到文件中,并且会在一定大写的时候生成新的文件
log4j.appender.name4=org.apache.log4j.RollingFileAppender
#输除文件的路径
log4j.appender.name4.file=c:/var/name4.log
#日志文件的大小
log4j.appender.name4.maxFileSize=20KB
#日志文件的最大可使用索引,就是最多产生多少个文件
log4j.appender.name4.maxBackupIndex=10000
#说明name4的appender使用PatternLayout布局
log4j.appender.name4.layout=org.apache.log4j.PatternLayout
log4j.appender.name4.layout.ConversionPattern=[%p]\t{%d}\t{%l} --> %m%n
#如果想具体到某个类或者某个包下的日志文件输出级别和格式的话,可以这么定义,com.abc.controller是包名
log4j.logger.com.abc.controller=ERROR, name2
4、测试代码:
import org.apache.log4j.Logger;
public class Log4jTest {
private static Logger logger = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
logger.debug("这是DEBUG的信息");
logger.info("这是INFO的信息");
logger.warn("这是WARN的信息");
logger.error("这是ERROR的信息");
}
}