Java日志系统之Slf4j

编程入门 行业动态 更新时间:2024-10-19 20:22:44

Java日志<a href=https://www.elefans.com/category/jswz/34/1770742.html style=系统之Slf4j"/>

Java日志系统之Slf4j

目录

Slf4j

Slf4j的简单使用

Slf4j的日志绑定流程

Slf4j桥接器


Slf4j

Slf4j又称简单日志门面,Slf4j主要是为了给Java日志访问提供一套标准,规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他的日志框架。

Slf4j的简单使用

Slf4j本身也提供一个简单的日志系统,但通常不用。通常slf4j与其他日志框架绑定使用。

Slf4j的出现时间比Log4j与JUL晚,因此它们两个的接口没有根据Slf4j的文档来,因此需要多引入一个适配器来使用。像logback等日志框架出现较晚,根据Slf4j的接口实现,因此直接引入该框架就好。

下面使用JUL来测试Slf4j。引入下列依赖包。

    <dependencies><!--日志门户--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.5.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId><version>1.5.6</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>

测试

    public final static Logger logger = LoggerFactory.getLogger(TestSlf4j.class);@Testpublic void testJUL() throws Exception {logger.error("error");logger.info("info");logger.debug("debug");logger.trace("trace");}

Slf4j的日志绑定流程

  • 添加slf4j-api的依赖
  • 使用slf4j的API在项目中进行统一的日志管理
  • 绑定具体的日志实现框架(JUL与Log4j需要引入适配器依赖)
  • slf4j有且仅有一个日志实现框架,如果有多个默认使用第一个

Slf4j桥接器

当项目初始时使用了Log4j日志框架时,后续项目扩展需要换logback日志框架,如果只是单纯的更换依赖,则仍需要修改代码。此时我们就需要使用桥接器来解决这个问题。

首先是初始项目中,我们只用了log4j的日志框架就可以满足使用了

后续中,我们要对项目进行迭代升级,需要使用logback日志框架。如果不添加桥接器依赖的话。如下如图所示

在原始代码中,会有错误提示。找不到类

这时我们就需要引入对应的桥接器依赖

此时迭代过后的项目也不会报错,且使用的日志框架为logback

注意问题

1.jcl-over-slf4j.jar和 slf4j-jcl.jar不能同时部署。前一个jar文件将导致JCL将日志系统的选择委托给SLF4J,后一个jar文件将导致SLF4J将日志系统的选择委托给JCL,从而导致无限循环。

2.log4j-over-slf4j.jar和slf4j-log4j12.jar不能同时出现

3.jul-to-slf4j.jar和slf4j-jdk14.jar不能同时出现

4.所有的桥接都只对Logger日志记录器对象有效,如果程序中调用了内部的配置类或者是Appender,Filter等对象,将无法产生效果。

更多推荐

Java日志系统之Slf4j

本文发布于:2023-12-05 19:09:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1665045.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系统   日志   Java   Slf4j

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!