【JavaEE进阶】 关于⽇志框架(SLF4J)

这篇具有很好参考价值的文章主要介绍了【JavaEE进阶】 关于⽇志框架(SLF4J)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌳SLF4j

【JavaEE进阶】 关于⽇志框架(SLF4J),JavaEE进阶,java-ee,java,spring,状态模式

SLF4J不同于其他⽇志框架,它不是⼀个真正的⽇志实现,⽽是⼀个抽象层,对⽇志框架制定的⼀种规范、标准、接⼝.所有SLF4J并不能独⽴使⽤,需要和具体的⽇志框架配合使⽤

🌲⻔⾯模式(外观模式)

SLF4J是⻔⾯模式的典型应⽤(但不仅仅使⽤了⻔⾯模式).

🚩⻔⾯模式的定义

⻔⾯模式(Facade Pattern)⼜称为外观模式,提供了⼀个统⼀的接⼝,⽤来访问⼦系统中的⼀群接⼝.

其主要特征是定义了⼀个⾼层接⼝,让⼦系统更容易使用。

  • 原⽂:Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higherlevel interface that makes the subsystem easier to use.
  • 解释:要求⼀个⼦系统的外部与其内部的通信必须通过⼀个统⼀的对象进⾏.⻔⾯模式提供⼀个⾼层次的接⼝,使得⼦系统更易于使⽤

【JavaEE进阶】 关于⽇志框架(SLF4J),JavaEE进阶,java-ee,java,spring,状态模式

⻔⾯模式主要包含2种⻆⾊:

  • 外观⻆⾊(Facade):也称⻔⾯⻆⾊,系统对外的统⼀接⼝.

  • ⼦系统⻆⾊(SubSystem):可以同时有⼀个或多个SubSystem.每个SubSytem都不是⼀个单独的类,⽽是⼀个类的集合.SubSystem并不知道Facade的存在,对于SubSystem⽽⾔,Facade只是另⼀个客⼾端⽽已(即Facade对SubSystem透明)

⽐如去医院看病,可能要去挂号,⻔诊,化验,取药,让患者或患者家属觉得很复杂,如果有提供接待⼈员,只让接待⼈员来处理,就很⽅便
【JavaEE进阶】 关于⽇志框架(SLF4J),JavaEE进阶,java-ee,java,spring,状态模式

🚩⻔⾯模式的优点

  • 减少了系统的相互依赖.实现了客⼾端与⼦系统的耦合关系,这使得⼦系统的变化不会影响到调⽤它的客⼾端;

  • 提⾼了灵活性,简化了客⼾端对⼦系统的使⽤难度,客⼾端⽆需关⼼⼦系统的具体实现⽅式,⽽只需要和⻔⾯对象交互即可.

  • 提⾼了安全性.可以灵活设定访问权限,不在⻔⾯对象中开通⽅法,就⽆法访问

🍃关于SLF4J框架

SLF4J就是其他⽇志框架的⻔⾯.SLF4J可以理解为是提供⽇志服务的统⼀API接⼝,并不涉及到具体的⽇志逻辑实现

那么为什么要引入日志门面呢?我们来看一下引入与不引入的区别就知道了

🚩不引⼊⽇志⻔⾯

常⻅的⽇志框架有log4J,logback等.如果⼀个项⽬已经使⽤了log4j,⽽你依赖的另⼀个类库,假如是Apache Active MQ,它依赖于另外⼀个⽇志框架logback,那么你就需要把logback也加载进去
【JavaEE进阶】 关于⽇志框架(SLF4J),JavaEE进阶,java-ee,java,spring,状态模式

存在问题:

  1. 不同⽇志框架的API接⼝和配置⽂件不同,如果多个⽇志框架共存,那么不得不维护多套配置⽂件(这个配置⽂件是指⽤⼾⾃定义的配置⽂件).

  2. 如果要更换⽇志框架,应⽤程序将不得不修改代码,并且修改过程中可能会存在⼀些代码冲突.

  3. 如果引⼊的第三⽅框架,使⽤了多套,那就不得不维护多套配置

🚩引⼊⽇志⻔⾯

引⼊⻔⾯⽇志框架之后,应⽤程序和⽇志框架(框架的具体实现)之间有了统⼀的API接⼝(⻔⾯⽇志框架实现),此时应⽤程序只需要维护⼀套⽇志⽂件配置,且当底层实现框架改变时,也不需要更改应⽤程序代码.
【JavaEE进阶】 关于⽇志框架(SLF4J),JavaEE进阶,java-ee,java,spring,状态模式

SLF4J就是这个⽇志⻔⾯.

总的来说,SLF4J使你的代码独⽴于任意⼀个特定的⽇志API,实现解耦。这是⼀个对于开发API的开发者很好的思想.

⭕总结

关于《【JavaEE进阶】 关于⽇志框架(SLF4J)》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!文章来源地址https://www.toymoban.com/news/detail-816184.html

到了这里,关于【JavaEE进阶】 关于⽇志框架(SLF4J)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA基础 - SLF4J: Class path contains multiple SLF4J bindings

    告警描述 告警显示,在类路径下包含了多个SLF4J的绑定,然后选择了一个实现类。 如何解决 方案一 根据项目的实际情况,删除多余的JAR包,多个JAR包路径如下: 方案二 查看项目的POM文件中是否有重复的SLF4J引入,如何查看?: 找到多余的SLF4J,然后将其排除:

    2024年02月04日
    浏览(36)
  • SLF4J门面日志框架源码探索 | 京东云技术团队

    SLF4J即Simple Logging Facade for Java,它提供了Java中所有日志框架的简单外观或抽象。因此,它使用户能够使用单个依赖项处理任何日志框架,例如:Log4j,Logback和JUL(java.util.logging)。通过在类路径中插入适当的 jar 文件(绑定),可以在部署时插入所需的日志框架。如果要更换日志

    2024年02月11日
    浏览(33)
  • 【SpringBoot中使用SLE4J日志框架启动报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinde】

    1.1 出现的问题 SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 1.2 原因分析 检查自己的maven依赖,发现已经引入了slf4j-api了,这是为什么呢?其原因是,SLF4J本身

    2024年02月13日
    浏览(27)
  • 微服务学习系列15:日志框架slf4j使用和原理

    目录   前言 一、slf4j 项目Github地址: slfj4j桥接API slf4j 项目模块描述 二、slf4j-api 简单使用 代码分析  三、基础知识 外观模式 适配器模式 什么是桥接模式 什么是SPI 什么是API 四、设计分析 参考 slf4j主要是为了给Java日志访问提供一个标准、规范的API框架,其主要意义在于提

    2024年02月07日
    浏览(27)
  • 如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

    笔者的操作环境: Spring Cloud Alibaba:2022.0.0.0-RC2 Spring Cloud:2022.0.0 Spring Boot:3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 因为 Spring Boot 已经内置了 Logback,所以需要先将 Logback 移除。移除的方法是在 Spring Boot 依赖包中移除 Logback。 比如就像这样: 【踩坑提

    2024年02月13日
    浏览(34)
  • 【Java】异常处理 之 使用SLF4J 和 Logback

    前面介绍了 Commons Logging 和 Log4j 这一对好基友,它们一个负责充当日志 API,一个负责实现日志底层,搭配使用非常便于开发。 有的童鞋可能还听说过 SLF4J 和 Logback 。这两个东东看上去也像日志,它们又是啥? 其实 SLF4J 类似 于Commons Logging ,也是一个日志接口,而 Logback 类似

    2024年02月12日
    浏览(39)
  • java 项目配置slf4j - log4j2

    2024年02月13日
    浏览(31)
  • java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

    本地开发spark项目时,测试案例运行时出现以下错误: 解决方法: 在项目的`pom.xml`文件中添加以下依赖: 感谢以下两位的分享: 关于解决 java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder 的解决方法 - gongstring - ITeye博客 java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

    2024年02月04日
    浏览(35)
  • 【SpringBoot】SLF4J: Class path contains multiple SLF4J bindings.

    SpringBoot整合j2cache,启动时报错。 类路径包含多个SLF4J绑定,这可能会导致SLF4J绑定冲突,从而引发启动时的错误。 修改pom.xml,排除j2cache-core和j2cache-spring-boot2-starter中的slf4j-simple依赖,以解决SLF4J绑定冲突问题。 通过以上排除操作,我们成功解决了SLF4J绑定冲突的问题,确保

    2024年02月11日
    浏览(26)
  • JAVA中使用log4j及slf4j进行日志输出的方法

    JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法。 一、下载log4j的架包,并导入项目中,如下: 二、创建log4j.properties配置文件 1、log4j配置文件的位置: (1)如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包