【JAVA 包依赖关系】日志包log4j依赖

本文解析了打造一个log4j日志框架项目需要的最小的和日志相关的包:

commons-logging-xxx.jar

log4j-xxx.jar

slf4j-api-xxx.jar

slf4j-log4j12-xxx.jar

有兴趣的同志可以继续看看下面:

Java 目前的开源日志框架主要分为 2层:

1)日志门面 (可以理解为接口)

2)日志框架具体代码(具体实现)

上述4个jar包中

commons-logging-xxx.jar

slf4j-api-xxx.jar

分别对应了JCL和slf4j两种日志门面。

后者是前者的替代品,解决了前者的一些问题。

但是,要注意,我开始以为这两兄弟是平行的,其实不是的。

我们在使用slf4j的时候,项目里也必须要包含commons-logging-xxx.jar。 具体原因有空再查证。官方的解释是:您就放着吧。

然后呢:

log4j-xxx.jar 就是log4j核心的日志框架代码。

那slf4j-log4j12-xxx.jar 是干嘛的呢?

可以理解为 链接

log4j-xxx.jar

slf4j-api-xxx.jar

的桥梁,或者适配器。

我个人的理解是,当年log4j刚出来应该没有遵循slf4j,所以写了个适配器来套接一下。【可能不是的,那就当帮助自己记忆吧】 :)

时间: 2024-08-27 08:44:25

【JAVA 包依赖关系】日志包log4j依赖的相关文章

Commons_logging包 Apache通用日志包

他为Log4JLogger:NoOpLog:LogKitLogger:Jdk14Logger:AvalonLogger提供了一共通用的接口进行调用,使得在使用各种不同的第三方日志包时变得非常简单.SimpleLog:是commons_logging自带的一个控制台输出日志. 可以通过简单的配置使用不同的第三方日志包. 在src根目录下放进commons-logging.properties文件,进行配置使用哪个第三方日志包. #定义了使用的具体第三方的日值包 #org.apache.common

解决安装rpm包依赖关系的烦恼 - yum工具介绍及本地源配置方法

版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内容用于商业用途,将保留追究其法律责任的权利.如果有问题,请以邮箱方式联系作者([email protected]). 1.背景概述 在实际生产环境下,对于在linux系统上安装rpm包,主要面临两个实际的问题1)安装rpm包过程中,不断涌现的依赖关系问题,导致需要按照提示或者查询资料,手工安装更多的

Assetbundle包的依赖关系与加载方式的深入

两种压缩方式:Lzma (默认的), Lz4 四种加载方法: 1,从内存中加载:LoadfromMemory()内存 2,从本地加载:LoadFromFile 3,从本地或服务器加载www(下面会提到) 4,从服务器端加载unityWebRequest 加载依赖资源包 1,获得总的依赖配置(streamingAssets) 2,根据名称找到目标加载资源的所有依赖 3,加载所有的依赖资源 加Lua脚本Lua格式改为bytes后缀文件 资源路径: Application.datapath; Appl

java 面向对象基础 UML图 构造方法 对象 参数传值 关联关系 依赖关系

UML图 UML(Unified Modeling Language Diagram,UML),它是一个结构图,用来描述一个系统的静态结构.一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图.关联关系(Association)的UML图.依赖关系(Dependency)的UML图和实现关系(Realization)的UML图. 第一层是名字层,如果类的名字是常规字形,表明该类是具体类, 如果类的名字是斜体字形

向依赖关系宣战[转]

终极目标:解耦 依赖注入的核心思想是:接口和实现分离 1. 抽象接口隔离了使用者和实现之间的依赖关系,但创建具体实现类的实例对象仍会造成对于具体实现的依赖. 2. 采用依赖注入可以消除这种创建依赖性.使用依赖注入后,某些类完全是基于抽象接口编写而成的,这可以最大限度地适应需求的变化. 分离接口和实现是人们有效地控制依赖关系的最初尝试,而纯粹的抽象接口更好地隔离了相互依赖的两个模块,“依赖倒置”和 “控制反转”原则从不同的角度描述了利用抽象接口消解耦合的动机,GoF的设计模式正是这一动机的完美体现

手动创建Maven项目并建立两个项目之间的依赖关系

用命令行快速建立maven项目 -> mvn:archetype:generate -> 直接回车或者自己输入你想生成的 -> groupId ->artifactId ->如果有默认值回车即可 最后 y 确认创建 我们看下他的目录结构 项目名: src ->main ->java ->test ->java pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0"

Android error: install libsdl-dev 未满足的依赖关系

Android编译时需要用到 libsdl-dev 库: 安装时遇到错误: sudo apt-get install libsdl-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 注意,选取 libsdl1.2-dev 而非 libsdl-dev 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出

类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)

类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和配置图等进一步描述系统其他方面的特性. 类图包括7个元素:类(Class).接口(Interface).协作(collaboration).依赖关系(Dependency).泛化关系(Generalization).关联关系(Association)以及实现关系(Realization).

Maven之(九)依赖关系

在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖.就是说,你跟开发spring的大牛们平起平坐,你的项目可以依赖Spring项目,Spring项目也可以依赖你的项目(虽然现实中不太会发生,你倒贴钱人家也不敢引用). 项目的依赖关系主要分为三种:依赖,继承,聚合 依赖关系 依赖关系是最常用的一种,就是你的项目需要依赖其他项目,比如Apache-common包,Spring包等等. <depen

Ubuntu上安装gtk2.0不能安装的问题,“下列的软件包有不能满足的依赖关系”

[email protected]:~$ sudo apt-get install libgtk2.0-dev正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新到(Incoming)目录移出.下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: libgt