SLF4J(The Simple Logging Facade for Java )是一个简单的日志门面,SLF4J提供了统一的日志api让你可以在部署应用的时候随意更换日志框架。使用时只需要依赖slfj-api-xxx即可。

如:

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId>
</dependency>

hello world例子程序

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");}
}

运行例子程序你会发现控制台会输出:

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.

这是因为你没有绑定实际的日志框架,以下使用logback为日志框架为例,logback原生实现slf4j的接口,所以没有适配或者转换层,性能会更好,在pom中添加logback日志框架的依赖:

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId>
</dependency>

再次运行正常打印日志。

slf4j在2.0.0版本之后推出了fluent api,使用该api打印日志将会向后兼容slf4j的版本,有兴趣的朋友可以自行了解,这里不展开。

在部署时绑定日志框架

slf4j支持多个日志框架,每个日志都有一个桥接jar包,称之为"SLF4J bindings",部署是只需要更换桥接包和对应的日志框架包即可实现日志框架的切换。以下是桥接包的列表:

jar包 对应的绑定的日志框架 备注
slf4j-log4j12-1.7.36.jar log4j 有安全问题,建议使用reload4j代替,
slf4j-reload4j-1.7.36.jar reload4j log4j原作者开发的在log4j项目上fork出来并修复安全问题的新日志项目,从log4j更换到reload4j不需要更改源代码
slf4j-jdk14-1.7.36.jar JDK 1.4 logging jdk自带的日志类
slf4j-nop-1.7.36.jar slf4j的NOPLogger类 slf4j实现的日志类,不打印任何日志
slf4j-simple-1.7.36.jar org.slf4j.impl的SimpleLogger类 slf4j实现简单的日志类,将所有日志输出到Systrem.err中
slf4j-jcl-1.7.36.jar Jakarta Commons Logging
logback-classic-1.2.10.jar(requires logback-core-1.2.10.jar) logback 原生实现slf4j接口,性能比其他的好

以下这张图描述了slf4j和其他日志框架的关系。

认识和使用Slf4j相关推荐

  1. [转]slf4j + log4j原理实现及源码分析

    slf4j + log4j原理实现及源码分析 转载于:https://www.cnblogs.com/jasonzeng888/p/6051080.html

  2. slf4j导入那个依赖_学习SPRINGBOOT结合日志门面SLF4J和日志实现LOGBACK的混合使用

    一.此处主要介绍在springboot工程下如何使用 logback + slf4j 进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在) ...

  3. slf4j 日志监控

    问题描述 监控系统 新系统起步,旨在监控原有系统的各种问题.主要的一部分,就是监视原有系统的日志. 日志,是Java企业级应用开发必不可少的一部分,市场上有诸多日志框架.我们选用slf4j. 日志有以 ...

  4. SLF4J 的几种实际应用模式--之二:SLF4J+Logback

    前面讲的 SLF4J 的用法之一是 SLF4J+Log4J,而这里要推出的组合是 SLF4J+LogBack.不用 Log4J?难道还有比 Log4J 更好的日志实现吗?是的,答案就是 LogBack ...

  5. Slf4j 包老冲突,每次排查半天,是什么原因?怎么解决?

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 一.前言 在进行 Java 开发时,通常我们会选择 Slf4 ...

  6. log4j与commons-logging slf4j的关系

    1. slf4j     他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口并没有实现 所以如果要使用就得再给它提供一个实现了些接口的日志包, 比如:log4 ...

  7. SLF4J 之logback.xml配置文件实例及其说明

    为什么80%的码农都做不了架构师?>>>    对于java后端程序员来说,如何记录日志是一个小话题,只要在网上随便找一个log4j的简单说明,就可以用了.但是,要真正了解日志记录的 ...

  8. slf4j+log4j打印日志,控制台无日志输出

    slf4j+log4j 实现日志打印 项目场景: 今天看以前的项目,运行起来报错,项目日志对于项目是很重要的,但是控制台没有打印出来日志,运行起来报错的问题先放一放,先把日志的问题解决了,我项目中有l ...

  9. java log4j和logback,跨过slf4j和logback,直接晋级log4j 2

    今年一直关注log4j 2,但至今还没有出正式版.等不及了,今天正式向大家介绍一下log4j的升级框架,log4j 2. log4j,相信大家都熟悉,至今对java影响最大的logging系统,至今仍 ...

  10. SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder.

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Spring Cloud 启动提示: SLF4J: ...

最新文章

  1. 一名算法工程师,对流量和时代红利的思考
  2. 【log】12/11 checking project:(Laravel)snsTest
  3. Java 定义字符串数组
  4. python request-python3的request用法实例
  5. svn文件重进更改服务器路径,svn 设置 服务器路径
  6. mysql from unixtime_mysql 错误总结 和FROM_UNIXTIME用法
  7. linux tar.gz指定目录,tar.gz包内提取某个文件在指定目录下。
  8. Debit and Credit Memo
  9. 武汉学java_学习武汉Java开发想要找到工作,需要学到什么程度呢?
  10. 如何把手机变成你的救生设备
  11. C语言打印杨辉三角(C笔记)
  12. 面试后要请你吃饭_面试官发出这5个信号,暗示你面试基本成功了,请做好准备!...
  13. oracle数据的闪回——删库跑路?老铁别想了!
  14. codeforce Zebras(思维 + 模拟)
  15. python spearman相关系数_常用的特征选择方法之 Spearman 秩相关系数
  16. 【odroid-xu3】 ODROID-XU3硬件连接和烧写过程
  17. 【华为机试】HJ16 购物单
  18. HTML5网页设计成品_中华传统文化网页题材_诗词网页4页_web课程设计网页制作
  19. 绿盟于旸:让阿里安娜火箭爆炸的缓冲区溢出 linkboy语录:tk出品必是精品呵呵...
  20. C#调节windows音量

热门文章

  1. i5-8300H+Nvidia1060安装win+ubuntu16.04双系统记录
  2. 深度学习原理-----循环神经网络(RNN、LSTM)
  3. office便捷办公02:安装visio2010需要MSXML版本6.10.1129.0及Error1935解决办法
  4. strcpy函数用法详细解释
  5. U-BOOT1.2.0移植S3C2440成功
  6. 怀疑开发者在“造核弹”?GitHub不断封禁开源项目
  7. Thinkpad 电脑F1常亮的解决办法
  8. QT练手小项目:飞机大战
  9. 【数据结构】递归和迭代
  10. ZEMAX的激光扩束镜的设计优化