首页 > 编程知识 正文

Java常用的日志框架对比和深入分析

时间:2023-05-03 06:40:37 阅读:81233 作者:1200

前言

作为资深开发者,对日志记录框架肯定知之甚少。 而且,在大多数APP中,一定会用到各种各样的东西

日志框架用于记录程序的执行信息。 这是成熟的Java APP应用程序中不可缺少的。 在开发和调试阶段,日志可以帮助我们更快地发现问题; 在APP运输过程中,日志系统可以帮助我们记录大部分异常信息。 许多公司通常通过收集日志信息来实时监控和警告系统的运行状况。 那么,我们对日志框架了解多少呢?

常用日志框架

慈悲的花生

怡红花花生是apache下一个功能非常丰富的java日志库的实现,怡红花花生应该是出现较早、最受欢迎的java日志组

是的,是基于java的开源日志组件。 怡宝花生的功能非常强大,可以通过怡宝花生将日志输出到控制台、文件和用户界面。 也可以输出到操作系统的事件记录器和某些系统驻留进程。 有趣的是,怡宝花生可以轻松定制日志格式和日志级别,从而使开发者可以全面管理自己的日志信息

怡亚通2

怡宝花生2是怡宝花生1的升级版。 怡红花花生2基本上重构了怡红花花生版本的全部核心,并在怡红花花生的基础上进行了许多优化和改变

回溯法

Logback是怡宝花生创始人设计的另一个开源日志组件,作为怡宝花生的替代者出现。 然后正式地说是提案和

如果一起使用Slf4j,你不会知道Logback、Slf4j、怡宝的花生来自同一个人吧。 Logback是基于怡宝花生进行了改良的版本,Slf4j又是同一个人设计的,所以默认情况下无缝结合到Slf4j上。

日本航空运输公司

实现JDK 1.4版或更高版本提供的自己的日志库

集成日志模块

目前市场上有两个比较广泛使用的统一日志规范接口

SLF4j

SLF4j (simpleloggingfacadeforjava )是基于API的Java日志框架,slf4j提供了简单统一的日期

登录界面。 开发者只需要实现这个接口就可以实现日志功能。 可以说,这只是为各种日志系统提供服务,而不是为特定的日志解决方案,从而允许最终用户使用APP部署常用的日志系统

公共记录

Common-logging为许多具体的日志实现库提供了统一的接口,其功能类似于SLF4j,并且可以在运行时绑定任何日志库。

这里有一个插曲。 当时apache说服了怡宝花生和其他日志框架按照Commons-Logging的标准制作,但由于Commons-Logging的类加载有些问题,所以实现起来并不友好。 于是怡神花生的作者创作了Slf4j,为此与Commons-Logging建立了两个世界

说明几个日志框架的关系

各日志的功能演示

虽然各日志模块的功能演示和配置说明不多,但在网上检索并抓住下一只大手,就会详细说明。

slf4j与各日志框架的集成原理

重要的是,slf4j非常有趣,通过牛的设计来整合各个日志框架。

去看slf4j的源代码时,LoggerFactory.java中有这样的静态全局变量

privatestaticstringstatic _ logger _ binder _ path=' org/slf4j/impl/staticloggerbinder.class '中还包含核心代码

熟悉ClassLoader结构的学生,这个代码看起来非常易懂。 使用类加载器加载类路径下存在StaticLoggerBinder.class的所有文件。 找到这个文件后,将其添加到收藏中。 通过加载到相应jar中的StaticLoggerBinder。 中显示了当前的缩放比例。

在此代码中,您将看到staticloggerbinder.get singleton ().getLoggerFactory ) )

这是由第三方集成包返回的实例。 这是slf4j的中心部分

总结

以上简单地整理了java中常用的日志框架。 有问题的人请联系我

搜索引擎度娘搜索【咕泡学院】获取更多技术资料和视频。

往期(JVM、多线程、分布式、高并发、高可用、nginx、redis、mysql、zookeeper、dubbo等)免费公开课关注咕泡学院即可获得,点击关注

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。