本文是Spring系列文章的一部分。其他相关文章见
本文整理日志的发展史。
日志发展史
日志框架时代
在JDK1.3之前是没有日志框架的,所有相关功能都要sout实现。
log4j实现了第一个日志框架,实现了按级别保留日志、发送邮件通知等日志框架的基本功能。
apache希望JDK引入log4j,但是JDK选择自研。
在JDK1.4推出了JUL(java.util.logging)。
之后日志框架进入了百花齐放的阶段,有log4j,JUL,jboss.logging。
日志门面时代
这时候就出现了继承冲突的问题,所以apache开始制作日志门面JCL(jakarta common logging),目前已经放弃更新。
log4j的作者也做了一个日志门面,就是大名鼎鼎的slf4j。
Spring选择
Spring选择使用JCL+JUL
SpringBoot选择使用slf4j
日志框架时代2
不知道为啥,log4j的作者开发了logback性能超越了log4j。
apache也开发了log4j2。
所以现在的新框架一般使用的是slf4j+logback/log4j2
slf4j的使用
输出日志格式
%c%d{HH:mm:ss} --%p --%m%n
%c所在类全名
%d输出日志时间,后边是格式
%p日志级别
%m信息
%n换行
使用lombok
使用lombok可以直接使用@slf4j注解
就不需要写
Logger log = LoggerFactory.getLogger(xx.class);
可以直接使用
log.debug("info");