入口层 -- sfl4j 的真实入口。 适配器层 -- sfl4j 用于将日志输出适配到指定日志框架实现的适配器模式实现。 实现层 -- 用于将日志以指定日志框架输出的具体实现。
of type [org.slf4j.impl.Log4jLoggerFactory] 对比上面两个输出文件中的第三行,第四行和最后一行,发现不同的机器有可能输出的不一样,另外一点能够得到的是正常的机器sfl4j
一、SFL4J使用 1、使用方法 系统是导入slf4j.jar;但注意的是每个日志的实现框架 都有自己的配置文件,使用后需要配置文件做成日志实现框架 的配置文件; 2、注意事项 因为项目工程中有可以引入不同的框架比如
--sfl4j日志依赖--> org.slf4j
适配思路 其实很简单 你首先确认需要统一日志的模块、框架是使用哪个日志组件的,然后再找到sfl4j的适配器。 记得去掉无用的日志实现组件,只保留你要用的。
我又盗了一个图来说明 upload successful 适配思路 其实很简单 1.你首先确认需要统一日志的模块、框架是使用哪个日志组件的,然后再找到sfl4j的适配器。
我又盗了一个图来说明 适配思路 其实很简单 你首先确认需要统一日志的模块、框架是使用哪个日志组件的,然后再找到sfl4j的适配器。 记得去掉无用的日志实现组件,只保留你要用的。
-- sfl4j --> org.slf4j slf4j-api
我又盗了一个图来说明 image.png 适配思路 其实很简单 你首先确认需要统一日志的模块、框架是使用哪个日志组件的,然后再找到sfl4j的适配器。
我又盗了一个图来说明 适配思路 其实很简单 1.你首先确认需要统一日志的模块、框架是使用哪个日志组件的,然后再找到sfl4j的适配器。 2.记得去掉无用的日志实现组件,只保留你要用的。
首先确定的是这不会导致启动报错,其次在这种情况下编译期间,编译器会选择其中一个StaticLoggerBinder.class进行绑定,这个地方sfl4j也在reportActualBinding方法中报告了绑定的是哪个日志框架
-- Add the log4j -> sfl4j (-> logback) bridge into the classpath Hadoop is logging to log4j!
简单点说sfl4j是一层api接口,其他的5个日志框架都是实现类。 slf4j的出现是为了解决,一个项目中出现了多个日志依赖,从而导致项目难以管理和维护。
Slf4j(Simple Logging Facade for Java)在这样的背景之下,Ceki Gülcü因为个人原因从Apach离职,并且企图想要靠自己制定一套取代JCL的规范,最终命名为Sfl4j...不过桥接的是相当于把所有兼容日志框架的日志打印按照sfl4j的日志格式进行兼容管理。到这里Slf4j把所有的其他产品兼容了一个遍,也确实做到了一个框架代替其他日志框架的效果。
--用于与sfl4j保持桥接--> org.apache.logging.log4j
领取专属 10元无门槛券
手把手带您无忧上云