Log4j 学习总结
Log4j日志技术
文章目录
- Log4j日志技术
- 概念
- 日志和输出语句的区别
- 日志技术的体系结构
- Log4j配置文件详解
- Log4j配置文件的三个核心
- (1) Loggers记录器
- (2) Appenders输出源
- (3) Layouts布局
- Log4j使用步骤
1. 概念
程序中的日志技术可以记录程序运行时的详细过程,并可以进行永久存储
2. 日志和输出语句的区别
3. 日志技术的体系结构
4. Log4j配置文件详解
注:Log4j配置文件的名称必须是log4j.properties,一个简单的示例如下:
Log4j配置文件的三个核心
(1) Loggers记录器
i. 作用:用于表示日志的级别
ii. 格式:log4j.rootLogger=日志级别,appenderName1,appenderName2...
iii. 日志级别:
OFF、DEBUG < INFO < WARN < ERROR < FATAL、ALL、自定义的级别
注:Log4j有一个规则,只输出级别不低于指定级别的日志信息
iv. appenderName:在Appenders输出源中配置
(2) Appenders输出源
i. 作用:把日志输出到不同的地方,如控制台、文件中等
ii. 格式:
输出到控制台:
log4j.appender.自定义appenderName的名称=org.apache.log4j.ConsoleAppender
输出到文件中:
log4j.appender.自定义appenderName的名称=org.apache.log4j.FileAppender
iii. ConsoleAppender常用的选项:
- ImmediateFlush=true
表示所有消息都会被立即输出,设为false则不输出,默认值是true
- Target=System.out
使用out字体颜色为黑色,使用Target=System.err,字体颜色是红色
iv. FileAppender常用的选项:
- ImmediateFlush=true
表示所有消息都会被立即输出,设为false则不输出,默认值是true
- Append=false
true表示将消息添加到指定文件中,原来的消息不覆盖
false则将消息覆盖指定的文件内容,默认值是true
- File=D:/logs/logging.log4j (路径地址是向左的斜杠)
将日志信息输出到指定的文件中,此文件可以不存在,会自动创建
(3) Layouts布局
i. 作用:调整日志输出的格式
ii. 格式:
可以灵活地指定布局模式:
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.PatternLayout
包含日志信息的级别和信息字符串:
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.SimpleLayout
包含日志产生的时间、线程、类别等信息:
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.TTCCLayout
iii. PatternLayout常用的选项
格式:ConversionPattern=指定的格式化符号
5. Log4j使用步骤
(1) 导入jar包
(2) 编写log4j.properties配置文件,并将此文件放在src目录下
log4j.rootLogger=info,my,fileAppender
### direct log messages to my ###
log4j.appender.my=org.apache.log4j.ConsoleAppender
log4j.appender.my.ImmediateFlush = true
log4j.appender.my.Target=System.out
log4j.appender.my.layout=org.apache.log4j.PatternLayout
log4j.appender.my.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n
# fileAppender演示
log4j.appender.fileAppender=org.apache.log4j.FileAppender
log4j.appender.fileAppender.ImmediateFlush = true
log4j.appender.fileAppender.Append=true
log4j.appender.fileAppender.File=E:/log4j-log.log
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
(3) 在代码中获取日志对象,并输出
public class Log4JTest01 {
//Logger类所属的包是slf4j
//参数是当前类.class
private static final Logger LOGGER = LoggerFactory.getLogger(Log4JTest01.class);
public static void main(String[] args) {
LOGGER.debug("debug级别的日志"); //没有达到配置文件中的info级别,不会输出
LOGGER.info("info级别的日志");
LOGGER.warn("warn级别的日志");
LOGGER.error("error级别的日志");
}
}
(4) 运行结果
(5) 打开配置文件中指定的输出文件
还没有评论,来说两句吧...