slf4j、log4j、logback的关系

slf4j、log4j、logback的关系

slf4j译为简单日志门面,是日志框架的抽象,实现了日志框架一些通用的api,而log4j和logback是众多日志框架中的几种。
log4j和logback可以单独的使用,也可以绑定slf4j一起使用。
1. 单独使用。分别调用框架自己的方法来输出日志信息。
2. 绑定slf4j一起使用。调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)

使用slf4j绑定日志系统的优势

  1. 软件工程的角度。抽象,解耦,便于维护。可以参考一下上面的例子。
  2. 语法设计角度。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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值