写在前面:参考黑马程序员视频课、网络博客等
1.概念
Logger Appender Layout
-
Logger 日志记录器 控制日志的输出级别和日志是否输出
1.日志八大级别:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL; 2.常用5种如下(按照优先级由高到低): FATAL 致命错误,程序宕机 ERROR 发生错误但是不影响系统运行 WARN 警告 INFO 记录程序的运行过程 DEBUG 类似于IDEA的debug模式,更为细节
-
Appender 输出端 控制日志的输出位置
org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
-
Layout 日志布局(格式化)器 控制日志输出的格式
org.apache.log4j.PatternLayout(可以灵活地指定布局模式) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息) org.apache.log4j.HTMLLayout
2.使用
2.1 配置文件 log4j.properties
使用properties格式文件作为配置文件,Log4J框架会自动加载配置文件,并设置到Log4J的Logger
- Logger
log4j.rootLogger=日志级别,appender1,appender2,...
- Appender
# ConsoleAppender ImmediateFlush=true #表示消息即时输出,默认为true Target=System.err #默认值是System.out 直接打印会影响程序运行结果读取 # FileAppender ImmediateFlush=true threshold=WARN #指定写入的阈值,低于该阈值不写入 Append=true #表示以追加的形式写入 File=D:/data/log4j/logging.log
- Layout
# PatternLayout ConversionPattern=%m%n #自定义输出格式,详情见附录一
2.2 案例
坐标
<!--基于maven工程,pom.xml引入坐标-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置
# 2.控制台输出配置
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
# 1.指定日志的 输出级别 和 输出端
log4j.rootLogger=DEBUG,Console #低于debug级别的日志不会打印
代码
//获取日志对象
public class LoggerTest{
private static final Logger LOGGER = LoggerFactory.getLogger(LoggerTest.class);
public void A(){
System.out.println("hello world");
LOGGER.info("执行了打印helloworld");
}
附录一、 log4j的PatternLayout格式化相关符号