本文主要是介绍slf4j、log4j、logback的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
slf4j、log4j、logback的关系
slf4j译为简单日志门面,是日志框架的抽象,实现了日志框架一些通用的api,而log4j和logback是众多日志框架中的几种。
log4j和logback可以单独的使用,也可以绑定slf4j一起使用。
1. 单独使用。分别调用框架自己的方法来输出日志信息。
2. 绑定slf4j一起使用。调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)
使用slf4j绑定日志系统的优势
- 软件工程的角度。抽象,解耦,便于维护。可以参考一下上面的例子。
- 语法设计角度。slf4j有{}占位符,而log4j需要用“+”来连接字符串,既不利于阅读,同时消耗了内存(heap memory)。
log4j和logback对比
- log4j是apache实现的一个开源日志组件
- logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。是slf4j的原生实现
上图可以看到应用程序对日志框架的调用关系。应用程序调用slf4j api,而日志的输出最终是由底层的日志框架来实现的。这张图也提现了log4j和logback的不同。
可以看到logback是直接实现了slf4j的接口,是不消耗内存和计算开销的。而log4j不是对slf4j的原生实现,所以slf4j api在调用log4j时需要一个适配层
slf4j绑定log4j的用法
pom.xml添加依赖
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.21</version>
</dependency>
此时会自动添加三个jar包。
配置文件
log4j的正常运行需要配置文件,配置文件类型(二选一):
1. log4j.xml
2. log4j.properties。需要为其配置root、appender、layout等信息。
参考:Log4j配置详解之log4j.properties
slf4j绑定logback的用法
pom.xml添加依赖
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version>
</dependency>
配置文件
配置文件类型(二选一):
1. lockback.xml
参考:logback的使用和logback.xml详解
2. 在lockback.xml引入properties。
<property file="classpath:config.properties" />
<appender xxx><File>${log.path}</File>
</appender>
这篇关于slf4j、log4j、logback的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!