slf4j, Simple Logging Facade for Java 的包使用说明

jcl-over-slf4j-1.7.21-API文档-中文版.zip 赠送jar包:jcl-over-slf4j-1.7.21.jar; 赠送原API文档:jcl-over-slf4j-1.7.21-javadoc.jar; 赠送源代码:jcl-over-slf4j-1.7.21-sources.jar; 包含翻译后的API文档:jcl-over-slf4j-1.7.21-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.slf4j,artifactId:jcl-over-slf4j,version:1.7.21 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 立即下载

Link: http://windows9834.blog.163.com/blog/static/27345004201071915749769/


全称:Simple Logging Facade for Javahttp://www.slf4j.org/

简单日志门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。
Logging API实现既可以选择直接实现SLF4J接口的loging APIs如: logback、SimpleLogger。也可以通过开发相应的适配器来使用已有的API实现如
Log4jLoggerAdapter、JDK14LoggerAdapter。

SLF4J 不依赖任何特殊的class loader机制,实际上,SLF4J 和已有日志实现的绑定是在编译时静态执行的,具体绑定工作是通过一个jar包实现的,使用时只要把相应的jar包(只有一个)放到类路径上即可。
在SLF4J发行版本中包含了几个jar包,如slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-log4j13.jar, slf4j-jdk14.jar and slf4j-jcl.jar,Each of these jar files is hardwired at compile-time to use just one implementation, that is NOP, Simple, log4j version 1.2, log4j version 1.3, JDK 1.4 logging, and repectively JCL等.

SLF4J支持多个日志系统,比如NOP, Simple, log4j version 1.2, log4j version 1.3, JDK 1.4 logging, JCL and logback。

使用slf4j尽管很方便,但是让很多人搞不明白slf4j那么多包怎么用。

其实slf4j原理很简单,他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口,并没有实现,所以如果要使用就得再给它提供一个实现了些接口的日志包,比如:log4j,common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实现包的使用,当然slf4j-simple除外。其结构如下:

slf4j-api(接口层)
   |
各日志实现包的连接层( slf4j-jdk14, slf4j-log4j)
   |
各日志实现包

下面这个图更能说明其原理:

在这里还需要注意的是,连接层的jar包和实现的jar的版本要一致。
附jar说明:
slf4j-api-1.6.1.jar         -->  slf4j核心接口包
slf4j-simple-1.6.1.jar      -->  slf4j Simple Logger日志实现包
slf4j-nop-1.6.1.jar         -->
slf4j-migrator-1.6.1.jar    -->
slf4j-log4j12-1.6.1.jar     -->  slf4j调用log4j的实现包
slf4j-jdk14-1.6.1.jar       -->  slf4j调用jdk java.util.logging的实现包
slf4j-jcl-1.6.1.jar         -->  Jakarta Commons Logging
slf4j-ext-1.6.1.jar         -->
log4j-over-slf4j-1.6.1.jar  -->
jul-to-slf4j-1.6.1.jar      -->
jcl-over-slf4j-1.6.1.jar    -->

slf4j+log4j组合使用模式:
1. slf4j-api-1.5.11.jar
2. slf4j-log4j12-1.5.11.jar
3. log4j-1.2.15.jar
4. log4j.properties(也可以是 log4j.xml,本例中用 log4j.propertes)

JCL+Log4J组合使用模式:
1. commons-logging-1.1.jar
2. log4j-1.2.15.jar
3. log4j.properties

把这种 SLF4J+Log4J 的使用模式与曾为霸主地位的 JCL+Log4J 的用法进行一下对比(请忽略掉包文件中的版本号):

SLF4J+Log4j 组合对比JCL+Log4J 组合
slf4j-api-1.5.11.jar相当,定义高层 APIcommons-logging-1.1.jar
slf4j-log4j12-1.5.11.jar相当,左边是用绑定包,右边
是用配置文件来指定日志实现
commons-logging.properties,内容为:
org.apache.commons.logging.LogFactory=
org.apache.commons.logging.impl.LogFactoryImpl
或者
org.apache.commons.logging.Log=
org.apache.commons.logging.impl.Log4JLogger
log4j-1.2.15.jar一样log4j-1.2.15.jar
log4j.properties一样,原来怎么配置现在也是log4j.properties
程序代码中:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Logger logger = LoggerFactory.getLogger(TestSlf4j.class);
logger.info("Hello {}","SLF4J");
左边侵入的是 SLF4J API,右边是被 JCL 的 API 污染了

SLF4J 支持参数化,而 JCL 不能
程序代码中:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

Log log = LogFactory.getLog(TestJCL.class);

log.info("Hello JCL");


从上面的对比来看,SLF4j+Log4j 与 JCL+Log4J 的使用方式差不多,主要差异就在 SLF4J 用 jar 来告知用哪种日志实现,而 JCL 是通过配置文件来获得该选择哪个日志实现。

为什么会兴起 SLF4J,看看我们原来哪一个框架中,大的如 SSH 三雄(Spring、Struts、Hibernate),还有 WAS 应用服务器,小的就不计其数以前用的通用日志框架都清一色的 Jakarta Commons Logging(JCL),日志实现会选用 Log4j,为何现在 Hibernate、Tapesty、DbUnit、Jetty V6 等纷纷变节,都采用了 SLF4J 了呢?SLF4J 与 JCL 相比,定然是有其可表之处。而其中 SLF4J 受类加载器的影响较小,不易产生内存溢出的问题,性能得到了改善,更主要是顺应了潮流的发展--可方便部署到 OSGI 环境中。

jcl-over-slf4j-1.7.25-API文档-中文版.zip 赠送jar包:jcl-over-slf4j-1.7.25.jar; 赠送原API文档:jcl-over-slf4j-1.7.25-javadoc.jar; 赠送源代码:jcl-over-slf4j-1.7.25-sources.jar; 赠送Maven依赖信息文件:jcl-over-slf4j-1.7.25.pom; 包含翻译后的API文档:jcl-over-slf4j-1.7.25-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.slf4j:jcl-over-slf4j:1.7.25; 标签:slf4j、jcl、over、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 立即下载

相关推荐

Arco Design Pro PC端商家后台框架 | Axure高保真原型库

摘要:本Axure原型设计方案基于字节跳动ArcoDesignPro规范,提供企业级后台快速搭建方案。包含动态表格、表单验证等核心组件,采用中继器驱动设计,支持响应式布局。方案覆盖80%后台常用交互,可节省60%原型制作时间,配套完整设计文档和组件库,实现原型到开发的高效衔接。特别适用于电商、SaaS等后台系统开发,支持权限管理、数据分析等场景,显著提升团队协作效率。

招风的黑耳优快云 3985

log桥接工具jcl-over-slf4j使用(项目排除commons-logging依赖的影响)

1、多日志实现组件存在问题java世界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,许多应用程序的日志部分都交给了 log4j,不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个工具,毕竟在同一个时候还有很多其他很多日志工具,假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序就会有两份日志输出了。2、解决多日志实现组件问题,引入JCL为了解决这个问题,

javaloveiphone的专栏 2万+

华为昇腾310P3+deepseek蒸馏版性能调优:FP16精度优化全记录

本文详细介绍了在华为昇腾310P3硬件环境下优化DeepSeek蒸馏版模型FP16精度的关键技术路径。通过分层量化策略、内存分配优化和并行计算配置,显著提升模型推理性能,实现83%的并发处理能力提升,同时保持98.7%的原始模型准确率。

weixin_29074409的博客 351

jcl-over-slf4j log桥接工具简介

ava 界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,许多应用程序的日志部分都交给了 log4j,不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个工具,毕竟在同一个时候还有很多其他很多日志工具,假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序就会有两份日志输出了。   为了解决这个问题,Apache Commons Logging (之前叫...

weixin_33951761的博客 275

Camera mipi通信协议

MIPI(移动行业处理器接口),是的缩写。MIPI移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI,其中是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。

arvin_xiong的博客 3731

从零构建:Simulink与PX4的快速原型开发实战

本文详细介绍了如何利用Simulink与PX4进行四旋翼无人机的快速原型开发,涵盖环境搭建、动力学建模、控制器设计、仿真验证及自动代码生成全流程。通过实战案例展示姿态控制器的实现与调试,帮助开发者高效完成从算法设计到硬件部署,显著提升开发效率并降低试错成本。

plant的博客 323

java日志处理commons-logging、slf4j、jcl-over-slf4j关系深入剖析(转)

转自: https://www.jianshu.com/p/da1c9e1e13ea 一、Java日志体系概述 图1-1 Java日志体系概况 图1-1 展示了Java日志体系的三个主要部分: 日志门面接口(SLF4J、JCL) 一系列绑定和桥接 具体的日志实现 先来两个例子: Spring项目中通过Commons Logging直接使用log4j ...

doasmaster的博客 3744

人工智能机器学习从入门到高级学习资料(含资料下载地址)

机器学习是一个技术含量较高的领域,高效学习需要多种途径相结合.以下是一些推荐的学习资源。首先介绍几个比较有用的社区,包含了丰富的学习资料

2401_86900375的博客 1649

Java 日志体系概述与应用

JAVA常用的日志打印组件 名称 描述 log4j 提供Async Append异步实现,稳定 logback 异步下,速度快 log4j2 log4j2是log4j 1.x 的升级版 基于LMAX Disruptor库,实现了一个高性能的异步记录器。在异步方面比logback和log4j都快 java.

数据与算法架构提升之路专栏 689

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

864

本地部署大模型:dgx-spark-ai项目硬件选型、部署与私有化AI构建指南

大语言模型(LLM)的本地部署是当前AI工程实践中的重要方向,其核心原理在于将模型权重与计算过程完全置于用户可控的硬件环境中。这项技术的核心价值在于实现了数据主权与隐私安全,避免了云端服务的延迟、持续订阅成本及数据外泄风险。从技术实现看,本地部署的关键在于硬件选型与软件环境适配,尤其是NVIDIA GPU的CUDA生态、显存容量与内存带宽的匹配。在应用场景上,本地化部署特别适合对数据敏感性要求高的领域,如企业内部代码助手、金融分析或医疗研究,能够支持私有化模型微调与定制化工作流构建。本文以dgx-spark

weixin_42531579的博客 506

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

Simple Logging Facade for Java (SLF4J) 用作各种日志记录框架(e.g. java.util.logging、logback、log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架 时间。请注意,启用 SLF4J 的库意味着仅添加一个强制依赖项,即 slf4j-api.jar。如果在类路径上找不到绑定/提供程序,则 SLF4J 将 default 为 no-operation 实现。获取日志记录器实例,并使用 SLF4J API 记录日志。

小工匠 4033

CONN工具箱分析fmri数据笔记1

前言一、安装二、预处理三、去噪 前言 CONN:functional connectivity toolbox,是基于MATLAB和SPM的一个对功能磁共振数据进行分析的一个工具箱。可以进行以下分析: Seed-based correlations (SBC), ROI-to-ROI correlations, graph analyses, Independent component analyses(group-ICA), Masked (ICA) Amplitude of Low-Frequency.

weixin_52073820的博客 6587

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

Simple Logging Facade for Java (SLF4J) 用作各种日志记录框架(e.g. java.util.logging、logback、log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架 时间。是 Logback 提供的一个实现,用于将 SLF4J 的日志接口与 Logback 的日志实现绑定。接口,因此可以通过 SLF4J 的 API 记录日志,并将日志委托给 Logback 来处理。是 Logback 中用于管理日志的核心对象,它实现了 SLF4J 的。

小工匠 4402

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

slf4j的使用

OK,现在我们来使用slf4j。 概念 SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。 实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFacto

LinkinPark的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

Simple Logging Facade for Java (SLF4J) 用作各种日志记录框架(e.g. java.util.logging、logback、log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架 时间。请注意,启用 SLF4J 的库意味着仅添加一个强制依赖项,即 slf4j-api.jar。,该适配器会将 SLF4J 日志调用转发到 JDK 自带的日志实现。类的作用是为 SLF4J 提供底层日志框架的绑定。),但实际的日志输出是通过 JDK 自带的。

小工匠 3670

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SLF4J的使用

当我们的系统变的更加复杂的时候,我们的日志就容易发生混乱。随着系统开发的进行,可能会更新不同的日志框架,造成当前系统中存在不同的日志依赖,让我们难以统一的管理和控制。就算我们强制要求所有的模块使用相同的日志框架,系统中也难以避免使用其他类似spring,mybatis等其他的第三方框架,它们依赖于我们规定不同的日志框架,而且他们自身的日志系统就有着不一致性,依然会出来日志体系的混乱。...

凉茶铺的博客 6232

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

Simple Logging Facade for Java (SLF4J) 用作各种日志记录框架(e.g. java.util.logging、logback、log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架 时间。上述警告表示类路径中找到多个绑定,SLF4J 会随机选择一个日志框架进行绑定。这个选择是由 JVM 的类加载机制决定的,并且会在控制台输出警告。类文件,SLF4J 会输出警告信息,告诉用户存在多个日志框架绑定的情况。)根据所绑定的日志框架不同返回不同类型的。

小工匠 3571

Simple Logging Facade for Java (SLF4J)与Logback

SLF4J与Logback 日志门面 The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment ti

野生程序猿的博客 455

slf4j的包使用说明

http://www.slf4j.org/ 全称:Simple Logging Facade for Java 简单日志门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接口的loging APIs如: logback...

Ddog 304

SLF4J(Simple logging facade for Java)【整理】

SLF4J 不依赖任何特殊的class loader机制,实际上,SLF4J 和已有日志实现的绑定是在编译时静态执行的,具体绑定工作是通过一个jar包实现的,使用时只要把相应的jar包(只有一个)放到类路径上即可。 在SLF4J发行版本中包含了几个jar包,如slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-log4j13.jar

码农的田园 842

Spring(一)Spring中的logging实现

sprign中的logging实现简介   对于spring架构,Jakarta Commons Logging API (JCL)是强制依赖的。spring将JCL反编译,并使得它们对类可见,从而扩展spring。程序员应该要意识到,所有版本的spring使用同一个logging库:因此迁移是很容易的,因为保证了向下兼容。程序员其实需要做的只是设置spring的某些模块,使其明确地依赖到com...

呼吸的小鱼博客 1429

SLF4J漫谈

SLF4J的全称是Simple Logging Facade for Java,是当前最流行的日志(包装)框架之一,它不是完成的一套日志框架实现,它主要用作各种日志框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署时插入具体的日志框架。可以直接将SLF4J看做其他日志框架的统一API,用SLF4J的好处是,如果后期用户需要切换日志框架的实...

大步流星的博客 1082

slf4j、log4j、log4j2、logback到底用哪些jar

前言 SparkStreaming用久了,打算学习一下Flink,就从官网下载了Flink 1.11,打算搞一个客户端,将程序提交在yarn上。因为Flink从1.7之后就不再提供Hadoop的依赖,所以很多依赖就要自己下载,于是各种ClassNotFoundException,其中以log*.class为首的格外猖狂,可能是因为flink和Hadoop的日志实现有点区别,就一直哐哐哐报错,slf4j、log4j、logback各种jar包十几个,百度好久也没搞清各个jar有什么区别,用在何处,就打算自己总

CatchLight的博客 2759
上一篇: Oracle 段的查看和管理
下一篇: The prefix "mvc" for element "mvc:annotation-driven" is not bound 的解决方法
VagueCoder
博客等级 码龄13年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值