首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java日志体系(slf4j)

    3 slf4j 3.1 简介 与commons-logging相同,slf4j也是一个通用的日志接口,在程序中与其他日志框架结合使用,并对外提供服务。...那么,简单的说slf4j可以理解为JDBC,都是提供接口服务,只不过比JDBC更为直观、简单些。在程序中,JDBC需要单独指定具体的数据库实现(例如:mysql),而slf4j并不需要。...接下来,我们讲解下关于slf4j具体的使用。 3.2 slf4j结构 上面的截图,展示的是slf4j搭配log4j使用。...但是,这些底层日志类实际上跟slf4j并没有任何关系,因此slf4j又通过增加一层日志中间层来转换相应的实现,例如上文中的slf4j-log4j12。...3.4 slf4j静态绑定原理 虽然commons-logging和slf4j都是日志服务接口,但是两者对于底层日志框架绑定的方式相差甚远。

    5.1K71

    Slf4j适配日志原理

    概要 看了之前的文章Java日志体系总结后,相信大家对slf4j以及其他日志组件的关系有了一定理解。slf4j只是为日志的输出提供了统一接口,并没有具体的实现,就好像JDBC一样。...源码基于slf4j-api.1.7.25 slf4j通用门面的实现 调用slf4j时我们都是使用它的api,首先我们需要获取它的logger 一般大家使用slf4j都是这样子的 import org.slf4j.Logger...logback-classic应该是logback的核心包才对,不应该关心slf4j的。那是因为slf4j和logback是同一个作者,所以才说logback是天然集成slf4j的。...这里主要看logback的Logger其实是继承了slf4j的Logger,这样就适配到slf4j。...参考资料 Slf4j源码解析 - 无底层日志实现框架时的执行流程 Java日志-SLF4J使用与源码分析

    99810

    slf4j 原理及使用原则

    slf4j 项目就是为此而生的。 2. slf4j 介绍 slf4j 是 simple logging facade for java 的缩写,可以翻译为 java 的简单日志外观。...原理 slf4j 的体系结构如图所示: 图中,我们可以看到,整个体系分为 5 层: 遗留层 -- 在没有 slf4j 时,我们使用每一个日志框架时所依赖的对应框架的组件。...得益于 slf4j 体系结构分层的清晰,了解了上述五层,我想不用再做过多讲解,slf4j 的工作原理已经十分清楚了。...适配器层(包括logback-classic也算适配器层)最多只能选1个包存在,否则slf4j的日志有可能输出到非预料位置 4. jul 桥接 slf4j 失败问题 上述 slf4j 使用原则中有一个问题...这是 slf4j 使用中的一个常见的问题,你会发现虽然配置好了 slf4j 的依赖并且正常启动,但基于 jul 的日志仍然输出到了默认的位置,那么,如何来解决这个问题呢?

    1.3K30

    Slf4j 日志框架适配原理

    概要 看了 Java 日志体系详解 后,相信大家对slf4j以及其他日志组件的关系有了一定理解。slf4j只是为日志的输出提供了统一接口,并没有具体的实现,就好像JDBC一样。...适配过程原理 统计API接口,说明slf4j使用的是门面模式(Facade),然后我们就很容易猜测到大致的调用过程是,slf4j是通过自己的api去调用实现组件的api,这样来完成适配的。...源码基于slf4j-api.1.7.25 slf4j通用门面的实现 调用slf4j时我们都是使用它的api,首先我们需要获取它的logger 一般大家使用slf4j都是这样子的 import org.slf4j.Logger...logback-classic应该是logback的核心包才对,不应该关心slf4j的。那是因为slf4j和logback是同一个作者,所以才说logback是天然集成slf4j的。...这里主要看logback的Logger其实是继承了slf4j的Logger,这样就适配到slf4j

    31150

    日志 --- SLF4J日志框架问答

    现在主流的日志方案是使用SLF4J作为API在代码中使用,具体的日志实现由不同的JAR完成,本文帮助了解一下SLF4J常见问题以及如何完美兼容各种不同日志框架 SLF4J如何自动使用lib中的日志实现...答: 使用绑定包slf4j-log4j12, slf4j-jcl, slf4j-jdk14,这些包中都实现了StaticLoggerBinder 如果第三方的项目已经使用了其他日志框架,如何统一使用SLF4J...答:使用桥接包log4j-over-slf4j, jcl-over-slf4j, jul-over-slf4j,这些桥接包就是底层使用SLF4J分别实现了Log4j, Commons-Logging,JUL...答:不可以,log4j-over-slf4j.jar中使用SLF4J实现了Log4j,但是slf4j-log4j12.jar又把SLF4J的实现交给了Log4j, 因此就产生了一个死循环。...日志系列 日志 --- Java混合日志组件的统一管理 参考 java日志组件介绍(common-logging,log4j,slf4j,logback )

    36820

    委派模式——从SLF4J说起

    首先说一下SLF4J。...二、从SLF4J开始SLF4J全称"Simple Logging Facade for Java (SLF4J) ", 它诞生之初的目的,是为了针对不同的log解决方案,提供一套统一的接口适配标准,从而让业务代码无须关心使用到的第三方模块都使用了哪些...在当前(本稿件于2022-03-01拟制)的市面上,既有的实现SLF4J的方案有以下几种:整体层次如下图:综上而言:以SLF4J-开头的jar包,一般指的是采用某种第三方框架实现的slf4j解决方案。...可以从源码入手:(slf4j/slf4j-log4j12 at master · qos-ch/slf4j · GitHub),我们看到了以下关键的文件:也就是说:slf4j-log4j使用了java的...LOG4J借鉴了SLF4J的思想(或者LOG4J在前?SLF4J借鉴的LOG4J ?), 也采用了 接口标准+ 适配器+第三方方案的思路来实现委派。

    37521

    slf4j介绍以及实现原理窥探

    一、概述   slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就好像我们经常使用的JDBC一样,只是一种规则而已...因此单独的slf4j是不能工作的,它必须搭配其他具体的日志实现方案,比如apache的org.apache.log4j.Logger,jdk自带的java.util.logging.Logger等等。...这里是使用SLF4J日志方法的代码,来自于slf4j-log4j12-1.6.1.jar中的Log4j的适配器类Log4jLoggerAdapter。...三、slf4j的使用方法以及实现原理   上面我们提到了slf4j是不能够独立工作的,要想使用我们必须带上其他的具体日志实现方案,下面我们就以log4j为例进行使用slf4j,我们需要做的工作如下:(下面的...类用来获取Logger;slf4j-log4j是连接slf4j和log4j的桥梁,怎么连接的呢?

    50220

    日志那点事儿——slf4j源码剖析

    那么commons-logging,slf4j,logback,log4j,logging又是什么关系呢?其中一二,且听我娓娓道来。...涉及到的内容:日志系统的关系、Slf4j下载、源文件jar包的使用、Slf4j源码分析、JVM类加载机制浅谈   首先八卦一下这个日志家族的成员,下面这张图虽然没有包含全部的内容,但是基本也涵盖了日志系统的基本内容...为了便于理解下面的代码,推荐先了解一下facade外观模式,因为Slf4j就是利用外观模式,提供对外的接口!...那么下面就看一下Slf4j如何进行初始化,又是如何获取日志工厂的!...而后面的具体实现由Slf4j来寻找加载.寻找的过程,就是通过类加载加载那个叫org/slf4j/impl/StaticLoggerBinder.class的文件,只要实现了这个文件的日志实现系统,都可以作为一种实现方式

    99150

    SLF4J和Logback日志框架详解

    本文讲述SLF4J和Logback日志框架。 ? ? SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。...SLF4J ---- SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。...SLF4J是轻量级的,在性能方面几乎是零消耗的。 SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。...Logback ---- Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。...由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。

    1.6K40
    领券