• slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。
    因此,slf4j入口就是众多接口的集合,他不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此,slf4j-api本质就是一个接口定义。

  • 下图比较清晰的描述了他们之间的关系:
  1. 当系统采用log4j作为日志框架实现的调用关系:
  2. 首先系统包含slf4j-api作为日志接入的接口;
  3. at compile时slf4j-api中public final class LoggerFactor类中
    private final static void bind() 方法会寻找具体的日志实现类绑定,主要通过
    StaticLoggerBinder.getSingleton();语句调用
  4. slf4j-log4j12:链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法
  5. log4j:这个是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。

出处:http://blog.csdn.net/tengdazhang770960436/article/details/18006127

slf4j-api、slf4j-log4j12、log4j 之间是什么关系?的更多相关文章

  1. Slf4j与log4j及log4j2的关系及使用方法

    Slf4j与log4j及log4j2的关系及使用方法 slf4j slf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独 ...

  2. 转:slf4j-api、slf4j-log4j12、log4j之间关系

    原文:https://www.cnblogs.com/lujiango/p/8573411.html 1. slf4j-api slf4j:Simple Logging Facade for Java ...

  3. slf4j-api、slf4j-log4j12、log4j之间关系

    1. slf4j-api slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade门面,更底层一点说就是接口.它允许用户以自己的喜好 ...

  4. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  5. slf4j-api、slf4j-log4j12以及log4j之间什么关系?

    几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api.slf4j-log4j12还有log4j他们是什么关系?我把 ...

  6. 微软提供的API的各个版本之间的区别

    First Floor Software这个diff lists非常方便的给出了微软提供的API的各个版本之间的区别,比如下表是.NET 4和.NET 4.5的API变化总结.我们可以看到.NET 4 ...

  7. 【转】窗口之间的主从关系与Z-Order

    原文链接:http://www.cnblogs.com/dhatbj/p/3288152.html 说明:这是本人2008年写的一篇旧文,从未公开发表过.其中除了一小段描述Window Mobile平 ...

  8. 窗口之间的主从关系与Z-Order

    说明:这是本人2008年写的一篇旧文,从未公开发表过.其中除了一小段描述Window Mobile平台的内容已过时,大部分内容对于从事Win32开发的程序员还是很有参考价值的,也是对自己从事Windo ...

  9. [转载]窗口之间的主从关系与Z-Order

    窗口之间的主从关系与Z-Order 原文地址:http://www.cnblogs.com/dhatbj/p/3288152.html说明:这是本人2008年写的一篇旧文,从未公开发表过.其中除了一小 ...

随机推荐

  1. 一篇关于oracle psu的文章(转)

    Oracle Database PSU/CPU Posted on 2011-07-28 16:27 dbblog 阅读(2569) 评论(0) 编辑 收藏 1. 什么是PSU/CPU?CPU: Cr ...

  2. Win32.com安装

    Win32.com安装     http://sourceforge.net/projects/pywin32/files/pywin32     

  3. 061——VUE中vue-router之通过程序控制路由跳转

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. jsp jsp_javabean

    javaBean的定义 JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法暴露 ...

  5. bzoj3040

    题解: 模板题,地界特斯拉+堆优化 注意第一种建边 代码: #include<bits/stdc++.h> using namespace std; typedef long long l ...

  6. Python 数据类型--字典类型

    字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...

  7. EClassNotFound

    ---------------------------Debugger Exception Notification---------------------------Project Project ...

  8. Spring-data-jpa详解

    转自:http://www.cnblogs.com/dreamroute/p/5173896.html

  9. Java——File类概述

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  10. Linux内核分析-分析Linux内核创建一个新进程的过程

    作者:江军 ID:fuchen1994 实验题目:分析Linux内核创建一个新进程的过程 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/li ...