当前位置:首页 > Java技术 > 日志框架总结

日志框架总结

2022年11月07日 09:25:21Java技术14

1 日志框架简介

(参考:http://xfhnever.com/2015/09/20/log-java-2/)
各种日志框架可以分为两类:

  1. 日志实现框架:jdk自带的logging(jul),log4j1、log4j2、logback
  2. 日志门面,即提供统一的接口不提供实现:apache的commons-logging(jcl)、slf4j

2 日志实现框架需要的jar包

  1. log4j:

    • log4j:log4j1的全部内容
  2. log4j2:

    • log4j-api:log4j2定义的API
    • log4j-core:log4j2上述API的实现
  3. logback:

    • logback-core:logback的核心包
    • logback-classic:logback实现了slf4j的API

3 slf4j需要的jar包

  1. slf4j-api

4 slf4j转向具体日志实现框架

项目中使用slf4j接口进行编程,而slf4j并没有整整的日志实现,需要我们加入日志实现依赖,并引入slf4j到某个具体日志实现的桥梁

  1. slf4j-jdk14:slf4j到jdk-logging的桥梁
  2. slf4j-log4j12:slf4j到log4j1的桥梁(之前一直以为是到log4j2的桥梁,引起错误)
  3. log4j-slf4j-impl:slf4j到log4j2的桥梁(log4j2使用该包)
  4. logback-classic:slf4j到logback的桥梁
  5. slf4j-jcl:slf4j到commons-logging的桥梁

5 日志实现转向slf4j

例如包使用log4j作为日志实现,而我们的项目使用log4j2作为日志实现,那么我们可以将log4j的日志输出交给slf4j,slf4j再交给log4j2来输出。这一部分主要用来进行实际的日志框架之间的切换

  1. jul-to-slf4j:jdk-logging到slf4j的桥梁
  2. log4j-over-slf4j:log4j1到slf4j的桥梁
  3. jcl-over-slf4j:commons-logging到slf4j的桥梁
  4. log4j-to-slf4j:将使用log4j2输出的日志桥接至slf4j

6 最佳实践

一般使用slf4j提供统一的日志接口,加上slf4j到具体日志实现的桥梁,最后再引入具体的日志实现。如使用log4j2的配置

        <!--slf4j-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>

        <!--桥梁-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.9.1</version>
        </dependency>

        <!--log4j2-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>

参考

  1. http://xfhnever.com/2015/09/20/log-java-2/
  2. https://www.cnblogs.com/hafiz/p/6170702.html

来源链接:https://www.cnblogs.com/set-cookie/p/8836496.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68273.html

标签: 日志框架
分享给朋友:

“日志框架总结” 的相关文章

slf4j-api、slf4j-log4j12以及log4j之间什么关系?

slf4j-api、slf4j-log4j12以及log4j之间什么关系?

几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j他们是什么关系?我把自己了解的和大家简单分享一下:     slf4j:Simp...

springboot 日志框架

springboot 日志框架

  一:市面上的日志框架: JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j.... 左边是日志门面(抽象层)、右边是日志的实现: 日志门面(日志抽象层)...

java 日志框架的选择Log4j->SLF4j->Logback

Log4j->SLF4j->Logback是同一个人开发的 import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.spr...

拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系

拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系

log4j 以及 logback, slf4j 官网 日志框架的困惑 作为一个正常的项目,是必须有日志框架的存在的,没有日志,很难追踪一些奇奇怪怪的系统问题。 但是,我们经常在项目的依赖中,见到奇奇怪怪 slf4j-api,slf4j-log4j12,log4j-over-...

JAVA 中日志的记录于使用

java中常用的日志框架 日志接口 Commons Logging Apache Commons Logging是一个基于Java的日志记录实用程序,是用于日志记录和其他工具包的编程模型。它通过其他一些工具提供API,日志实现和包装器实现。 SLF4J Java简易日志门面...

大明对日志的经验总结

前言 说一个自己经历过的事情,有一次我在开发一个通过csv文件批量导入交易的job的时候,在UAT环境上进行性能测试,发现执行失败了。通过查看日志发现,机器空间不足了,df -h一看发现32G的机器只有20k的空间,然后一看日志文件的大小,就占了20G。日志这东西,不能记得太多,...

日志配置(springboot、mybatis、Lombok)

日志配置(springboot、mybatis、Lombok)

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容   S...

【Java】Java日志框架Logback的简单例子

【Java】Java日志框架Logback的简单例子

常用的日志框架 SLF4J,全称Simple Logging Facade for Java,即Java简单日志外观框架,顾名思义,它并非具体的日志实现,而是日志外观框架 java.util.logging,是JDK自带的一个日志实现框架 Logback...

记录异常日志的7条规则

最近一直在帮忙调试一些让人头大的bug问题,这才意识到如何记录异常日志对于简化调试的重要性,我总结了几点记录异常日志的最佳实践发表在此。 1、记录技术性异常而不是用户异常 用户异常(如:“登录用户名已经存在”)除了显示给用户,要么什么都别管,要么根本就不是异常(“用户尚未认...

java日志框架系列(1):slf4j框架简介及依赖

java日志框架系列(1):slf4j框架简介及依赖

1.slf4j日志框架 1.简介 slf4j只是是日志规范,即只定义了接口,并没有实现这些接口。 SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。