JAVA日志组件

一.列举

门面类

  • Apache Commons Logging (JCL)

之前叫 Jakarta Commons Logging。Apache提供的一个通用日志接口,用户可自由选择日志实现组件,采用运行时动态查找的机制

  • SLF4J

Simple Logging Facade for Java , 对不同日志组件的门面封装 , 采用编译时静态绑定的机制

  • log4j2-api

LOG4J 2项目中的facade分离设计

非门面类

  • java.util.logging (JUL)

JDK原生的日志处理类库

  • LOG4J

LOG4J 1.X版本,1.X已停止更新

  • log4j2-core

LOG4J 2项目中的implement分离设计

  • LogBack

LOG4J作者的设计的又一日志组件

二.疑问

  1. 为什么需要门面类日志组件?

假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序就会有两份日志输出了。 若使用日志门面,开发者只需要针对门面接口开发,而调用组件的应用程序则可以搭配自己喜好的日志实现工具。

  1. SLF4J和Apache Commons Logging关联日志实现类库方式的差异

SLF4J在编译时静态绑定的机制,Apache Commons Logging采用运行时动态查找的机制。 程序规模越来越庞大时,动态绑定并不是总能成功。 该解决方法之一就是在程序部署时静态绑定指定的日志工具,这就是 SLF4J 产生的原因。

  1. 如何处理多种统一工程存在多种日志组件的情况?

这时你需要一个桥接器(名字为 XXX-over-slf4j.jar)把他们的日志输出重定向到 SLF4J。 比如jcl-over-slf4j.jar,即使某个组件原本是通过 JCL 输出日志的,现在却会被 jcl-over-slf4j “骗到”SLF4J 里, 然后 SLF4J 又会根据绑定器把日志交给具体的日志实现工具。

转载于:https://my.oschina.net/u/3226520/blog/825843

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值