本文仅仅是理清各种日志框架之间的关系和相互间转换关系,顺带附上springboot默认的Slf4j+Logback配置。具体各框架项目中如何使用,网上太多了,也写得更好。
1. 常用日志组件java开发常用的日志组件有JCL 、 JUL、 SLF4j、Log4j、 Log4j2 、 Logback、 jboss-loggin(不面对大众,不考虑) 等,一般日志是配套出现的,一般是由 一个日志门面(设计有点像JDBC) 和 一个日志实现 配套使用,也有一些可单独使用。那么 组成以下结构:
| 序号 | 日志门面(类似JDBC) | 日志门面配合日志实现的桥接包 | 日志实现 | 所属企业 | 备注 |
| 1 | Slf4j | logback-classic.jar | Logback | qos | 不可单独使用。 |
| 2 | slf4j-jdk14.jar | Jul (Java Util Logging) | java官方 | 可单独使用,太简单一般不用。 | |
| 3 | slf4j-jcl.jar | JCL(Jakarta Commons Logging) | Apache | 可单独使用 | |
| 4 | slf4j-log4j12.jar | Log4j | Apache | 可单独使用 | |
| 5 | log4j-slf4j-impl.jar | Log4j2 | Apache | 可单独使用。不是log4j的升级,不兼容log4j。 |
注1:桥接包 就是 日志门面 配套 日志实现 使用时所需要的中间包,日志实现 并没有实现Slf4j接口,所以需要中间包桥接。
注2:目前流行常用的是Slf4j+Logback, Slf4j+Log4j2, Log4j2。
注3:Slf4j没有具体实现不可单独使用,默认自带Logback配合使用(同一作者)。Jul ,JCL,Log4j,Log4j2可单独使用。JCL还可以配套Log4j使用。
2. 日志框架换新(重定向)在旧项目基础上使用Slf4j日志框架,或者整合第三方项目时需要兼容Slf4j日志框架,不需要修改之前的日志代码,只需加入一个迁移包即可,比如,旧的项目用的是Log4j,现在用Slf4j+Logback。
或者新的日志框架使用Log4j2,也有相应的迁移包。
迁移包如下:
| 序号 | 迁移方向 | 迁移包 |
| 1 | 从Jul 迁移至 Slf4j | jul-to-slf4j.jar |
| 2 | 从JCL 迁移至 Slf4j | jcl-over-slf4j.jar |
| 3 | 从Log4j 迁移至 Slf4j | log4j-over-slf4j.jar |
| 4 | 从Log4j2 迁移至 Slf4j | log4j-to-slf4j.jar |
| 6 | 从Jul 迁移至 Log4j2 | log4j-jul.jar |
| 7 | 从JCL 迁移至 Log4j2 | log4j-jcl.jar |
| 8 | 从Log4j 迁移至 Log4j2 | log4j-1.2-api.jar |
springboot自带的日志框架spring-boot-starter-logging,带入了三种日志框架jul,log4j2,logback,默认使用的是Slf4j+Logback, 需要把log4j2和jul两个框架重定向至Slf4j+Logback,所以同时引入了log4j-to-slf4j和jul-to-slf4j。
4. logback-spring.xml配置springboot默认使用Slf4j+Logback的组合,以下贴出logback-spring.xml的配置,以供参考。
注:logback-spring.xml一般放在/resources或者/resources/config目录下,如果放在其他路径需要在application.yml文件中配置:
logging: config: classpath:/logging/logback-spring.xml
logback-spring.xml配置如下:
5. 日志输出路径说明${LOG_PATTERN} UTF-8 ${LOG_PATTERN} ${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log.zip 365 10GB 100MB ERROR UTF-8 ${LOG_PATTERN} ${LOG_HOME}/error.%d.log 365 1GB
日志输出路径配置了
| 启动方式 | 实际输出路径 |
| 本地IDEA启动(IDEA安装在哪个盘就在哪个盘符下,我的在D盘) | D:/var/logs/{name} |
| 部署到服务器上 | /var/logs/{name} |
还有var/logs和../var/logs的写法,具体对比参照logback-spring.xml中三种相对路径生成的日志文件的位置_yancie_的博客-CSDN博客_logback.xml 相对路径



