log4j、logback日志冲突解决,log4j桥接到logback

背景:项目中一直使用slf4j日志框架,logback日志组件作为实现记录日志,最近集成elasticsearch客户端。

官方文档,es客户端运行依赖log4j日志组件,也亲自试了,不引入log4j确实会报错;怎么办呢,不能轻易引入log4j,很容易和logback冲突 ?

还好有这么一个桥接器,可以从log4j桥接到slf4j,只需依赖log4j-to-slf4j jar包即可完美解决。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.11.0</version>
</dependency> 

问题很容易解决了,是否值得思考一下,这种情况是否可以避免呢,比如说现在让你封装一个jar包给别人用,难道你要别人都加一个这样看似毫无关系的桥接器吗 ?

当然可以避免的,不需要每个使用方都用桥接器来解决问题,这也是slf4j等这类日志框架存在的意义,也是java中面向接口编程的思想所在。在封装的jar包里只使用slf4j这类日志框架的接口,至于具体实现是谁,看使用方了,使用方happy 就 ok !避免对使用方的影响,比如使用slf4j:

private final static Logger LOGGER = LoggerFactory.getLogger(xxx.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值