栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

理清java各种日志框架之间的关系,Slf4j,Log4j2等相互间转换关系

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

理清java各种日志框架之间的关系,Slf4j,Log4j2等相互间转换关系

本文仅仅是理清各种日志框架之间的关系和相互间转换关系,顺带附上springboot默认的Slf4j+Logback配置。具体各框架项目中如何使用,网上太多了,也写得更好。

1. 常用日志组件

java开发常用的日志组件有JCL 、 JUL、  SLF4j、Log4j、  Log4j2 、 Logback、 jboss-loggin(不面对大众,不考虑) 等,一般日志是配套出现的,一般是由  一个日志门面(设计有点像JDBC) 和 一个日志实现 配套使用,也有一些可单独使用。那么 组成以下结构:

序号日志门面(类似JDBC)日志门面配合日志实现的桥接包日志实现所属企业备注
1Slf4j logback-classic.jarLogbackqos不可单独使用。
2slf4j-jdk14.jarJul (Java Util Logging)java官方可单独使用,太简单一般不用。
3slf4j-jcl.jarJCL(Jakarta Commons Logging)Apache 可单独使用
4slf4j-log4j12.jarLog4jApache 可单独使用
5log4j-slf4j-impl.jarLog4j2Apache 可单独使用。不是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 迁移至 Slf4jjul-to-slf4j.jar
2从JCL 迁移至 Slf4jjcl-over-slf4j.jar
3从Log4j 迁移至 Slf4jlog4j-over-slf4j.jar
4从Log4j2 迁移至 Slf4jlog4j-to-slf4j.jar
6从Jul 迁移至 Log4j2 log4j-jul.jar
7从JCL 迁移至 Log4j2 log4j-jcl.jar
8从Log4j 迁移至 Log4j2log4j-1.2-api.jar
3.实战栗子:springboot

 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配置如下:



    
    
    
    

    
    
        
            ${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
        
    

    
    
        
        
        
    


5. 日志输出路径说明

日志输出路径配置了 ,然而在本地IDEA启动和部署到服务器上,实际输出的路径如下:

启动方式实际输出路径
本地IDEA启动(IDEA安装在哪个盘就在哪个盘符下,我的在D盘)D:/var/logs/{name}
部署到服务器上/var/logs/{name}

还有var/logs和../var/logs的写法,具体对比参照logback-spring.xml中三种相对路径生成的日志文件的位置_yancie_的博客-CSDN博客_logback.xml 相对路径

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号