您的位置:首页 > 游戏 > 游戏 > 互联网公司排名100强营收多少_如何向百度提交网站_站长工具域名查询ip_2345系统导航

互联网公司排名100强营收多少_如何向百度提交网站_站长工具域名查询ip_2345系统导航

2025/1/5 17:26:15 来源:https://blog.csdn.net/yangshangwei/article/details/144795898  浏览:    关键词:互联网公司排名100强营收多少_如何向百度提交网站_站长工具域名查询ip_2345系统导航
互联网公司排名100强营收多少_如何向百度提交网站_站长工具域名查询ip_2345系统导航

文章目录

  • Pre
  • 官网
  • 集成步骤
    • POM依赖
    • 使用
      • 第一步:编写 Logback 的配置文件
      • 第二步:在代码中使用 SLF4J
  • 原理分析
    • 1. 获取对应的 `ILoggerFactory`
    • 2. 根据 `ILoggerFactory` 获取 `Logger` 实例
    • 3. 日志记录过程
  • 小结

在这里插入图片描述


Pre

Java - 日志体系_Apache Commons Logging(JCL)日志接口库

Java - 日志体系_Apache Commons Logging(JCL)日志接口库_适配Log4j2 及 源码分析

Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J实现原理分析

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成JUL 及 原理分析

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成Log4j1.x 及 原理分析

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成Log4j2.x 及 原理分析

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成logback 及 原理分析


官网

https://slf4j.org/

在这里插入图片描述

Simple Logging Facade for Java (SLF4J) 用作各种日志记录框架(e.g. java.util.logging、logback、log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架 时间。

请注意,启用 SLF4J 的库意味着仅添加一个强制依赖项,即 slf4j-api.jar。 如果在类路径上找不到绑定/提供程序,则 SLF4J 将 default 为 no-operation 实现。

在这里插入图片描述


SLF4J user manual:https://slf4j.org/manual.html

在这里插入图片描述


集成步骤

在这里插入图片描述

POM依赖

   <!-- slf4j-api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.16</version></dependency><!-- logback --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.5.15</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.5.15</version></dependency>
  • slf4j-api: SLF4J 的核心 API,用于定义日志接口。
  • logback-corelogback-classic: Logback 的核心和经典模块,提供日志记录功能,并与 SLF4J 集成。

使用

第一步:编写 Logback 的配置文件

创建一个 logback.xml 配置文件,设置 Logback 的日志级别和输出格式。


<configuration><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} ===>>>>>> %msg%n</pattern></encoder></appender><!-- 文件输出 --><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>application.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 可选:配置日志文件滚动 --><appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>application.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 按天滚动日志文件 --><fileNamePattern>application-%d{yyyy-MM-dd}.log</fileNamePattern><!-- 最多保留 30 天的日志文件 --><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 根日志记录器 --><root level="debug"><appender-ref ref="STDOUT" /><appender-ref ref="ROLLING_FILE" /></root><!-- 可选:配置特定包的日志级别 --><logger name="com.artisan" level="info" />
</configuration>

第二步:在代码中使用 SLF4J

在代码中通过 LoggerFactory.getLogger() 获取日志记录器实例,并使用 SLF4J API 记录日志。

 package com.artisan;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** Slf4jLogback**/
public class Slf4jLogback {private static final Logger logger= LoggerFactory.getLogger(Slf4jLogback.class);public static void main(String[] args){logger.trace("Slf4jLogback This is a trace message");logger.debug("Slf4jLogback This is a debug message");logger.info("Slf4jLogback This is an info message");logger.warn("Slf4jLogback This is a warning message");logger.error("Slf4jLogback This is an error message");}}

在这里插入图片描述


原理分析

1. 获取对应的 ILoggerFactory

Logback 与 SLF4J 的集成通过 StaticLoggerBinder 类完成。StaticLoggerBinder 是 Logback 提供的一个实现,用于将 SLF4J 的日志接口与 Logback 的日志实现绑定。

  • 步骤 1.1:SLF4J 通过类加载器加载 org/slf4j/impl/StaticLoggerBinder.class 类,找到了 logback-classic 包中的绑定类。
  • 步骤 1.2StaticLoggerBinder 创建并返回 ILoggerFactory 实例。Logback 使用 LoggerContext 作为 ILoggerFactory 的实现类。
StaticLoggerBinder.getSingleton().getLoggerFactory(); // 获取 LoggerContext 实例

LoggerContext 中,Logback 初始化时会加载并解析配置文件(如 logback.xml)。这确保了日志配置在应用启动时就已准备好。


2. 根据 ILoggerFactory 获取 Logger 实例

LoggerContext 是 Logback 中用于管理日志的核心对象,它实现了 SLF4J 的 ILoggerFactory 接口。通过 LoggerContext,SLF4J 会获得实际的 Logger 实例。

  • LoggerContext 会根据日志名称返回一个 ch.qos.logback.classic.Logger 实例,这个 Logger 类实现了 SLF4J 的 Logger 接口。
Logger logger = loggerContext.getLogger(name); // 获取 Logback 的 Logger 实例
  • 步骤 2.1:当 SLF4J 调用 LoggerFactory.getLogger() 时,它会通过 LoggerContext 获取对应的 Logger 实例,这个实例是 Logback 自定义的 Logger,但它实现了 SLF4J 的 Logger 接口。

  • 步骤 2.2ch.qos.logback.classic.Logger 实现了 SLF4J 定义的 Logger 接口,因此可以通过 SLF4J 的 API 记录日志,并将日志委托给 Logback 来处理。


3. 日志记录过程

当调用 SLF4J 的日志方法时(如 logger.debug()),日志请求会被转发到 Logback 中的 Logger 实例,该实例最终会根据 logback.xml 配置输出日志。Logback 的 Logger 实现会委托给 Appender(如 ConsoleAppender)来完成日志输出。

  • 日志输出的格式由 logback.xml 中定义的 PatternLayout 决定。
  • Logback 会根据日志级别(如 DEBUGINFO)和配置的 Appender 进行输出。

小结

  • 依赖关系:通过 slf4j-apilogback-corelogback-classic 实现 SLF4J 与 Logback 的集成。
  • 核心过程:SLF4J 通过 StaticLoggerBinder 类绑定到 Logback,LoggerContext 返回 Logback 的 Logger 实例。
  • 日志调用转发:SLF4J 的日志调用会被转发到 Logback 的 Logger 实例,并根据 logback.xml 配置进行日志输出。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com