前言
作为资深开发者,对日志记录框架肯定知之甚少。 而且,在大多数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等)免费公开课关注咕泡学院即可获得,点击关注