美文网首页
日志体系梳理

日志体系梳理

作者: 知止9528 | 来源:发表于2021-03-20 16:51 被阅读0次

日志可以分为具体实现和接口,区别是如果直接调用接口,会使用多态,根据项目中添加的具体实现,根据反射进行调用

具体实现包括

log4j

    1. log4j是通过一个.properties的文件作为主配置文件的
    1. log4j想要生效,我们需要在web.xml中进行配置,这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。
    1. log4j在高并发高QPS情况下,是存在性能问题的。

log4j2

    1. log4j 2采用的是.xml,.json或者.jsn这种方式来做,毕竟properties文件的可阅读性真的是有点差。
    1. log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。
    1. log4j2采取异步日志模式,解决了因日志造成的性能问题

logback

Logback是由log4j创始人设计的又一个开源日志组件,
也是SpringBoot内置的日志处理框架log4j2推出时间晚
它的一些优点

  1. logback比log4j要快大约10倍,而且消耗更少的内存。
  2. logback-classic模块直接实现了SLF4J的接口,所以我们迁移到logback几乎是零开销的。
  3. logback不仅支持xml格式的配置文件,还支持groovy格式的配置文件。相比之下,Groovy风格的配置文件更加直观,简洁。
  4. logback-classic能够检测到配置文件的更新,并且自动重新加载配置文件。
  5. logback能够优雅的从I/O异常中恢复,从而我们不用重新启动应用程序来恢复logger。
  6. logback能够根据配置文件中设置的上限值,自动删除旧的日志文件。
  7. logback能够自动压缩日志文件。
  8. logback能够在配置文件中加入条件判断(if-then-else)。可以避免不同的开发环境(dev、test、uat…)的配置文件的重复。
  9. logback带来更多的filter。
  10. logback的stack trace中会包含详细的包信息。
  11. logback-access和Jetty、Tomcat集成提供了功能强大的HTTP-access日志。

jul

jdk本身自带的日志打印


接口包括


jcl

jcl可以看作是一个门面,目前仅支持几种实现方式,org.apche.commons.logging.impl.jdk14logger,org.apche.commons.logging.impl.jdk13lumberjacklogger,org.apche.commons.logging.impl.simplelog,所以会有局限性


slf4j

slf4j是一个门面,一个适配器,所有的日志代码都可以用slf4j来写,它会根据项目具体依赖的日志实现包进行日志操作。
通过slf4j写日志的好处是,当更换日志的实现方案时,无需修改日志代码,只需修改pom.xml即可
使用SLF4J时,如果你需要使用某一种日志实现,那么你必须选择正确的SLF4J的jar包的集合(各种桥接包)。SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

image.png

小结

image.png

接口:将所有日志实现适配到了一起,用统一的接口调用。
实现:目前主流的日志实现
旧日志到slf4j的适配器:如果使用了slf4j,但是只想用一种实现,想把log4j的日志体系也从logback输出,这个是很有用的。
slf4j到实现的适配器:如果想制定slf4j的具体实现,需要这些包。

slf4j跟commons-logging类似,是各种日志实现的通用入口,log4j、log4j2、logback、slf4j-simple和java.util.logging是比较常见的日志实现系统,目前应用比较广泛的是Log4j和logback,而logback作为后起之秀,以替代log4j为目的,整体性能比log4j较佳,log4j的升级版log4j2也是有诸多亮点,用户可以根据项目需求和个人习惯,选择合适的日志实现。

相关文章

  • 日志体系梳理

    日志可以分为具体实现和接口,区别是如果直接调用接口,会使用多态,根据项目中添加的具体实现,根据反射进行调用 具体实...

  • Java日志体系整体梳理

    一、Java日志体系的发展历程 Log4j:在JDK 1.3及以前,Java打日志依赖System.out.pri...

  • 体系梳理

    这份工作我想定义为一个起步,觉得还是非常幸福、非常有收获,虽然已经遇到了种种困难,给人种种的坏印象,但本来价值就在...

  • Log

    混乱的 Java 日志体系 正确的打日志姿势

  • 2018-01-14 Java应用日志

    java日志体系 java日志体系很混乱。在日志实现框架在有log4j,log4j2,java.util.log,...

  • 复杂Spring项目中SLF4J最佳使用姿势

    一、Java日志体系概述 图1-1 展示了Java日志体系的三个主要部分: 日志门面接口(SLF4J、JCL) 一...

  • 这样做“笔记”,助你拉开与别人的专业差距

    工作笔记,也称为工作日志,是重新回顾工作和梳理知识体系的经过,也是不断沉淀的过程。一般的职场人士,不是很在意记录工...

  • 系统学习的重要性

    重新回到职场,领导让梳理员工关系体系和培训体系,竟然梳理不出。因为脑中根本没有一套成型的体系,只有一些零散的碎片。...

  • 第十二章 大型重构

    大型重构 12.1 Tease Apart Inheritance (梳理并分解继承体系) 某个继承体系同时承担两...

  • 企业内部风险控制体系

    企业内部风险控制体系的建立,从四个方面入手: 业务分类与梳理 流程梳理与优化 组织结构建设 绩效体系建设

网友评论

      本文标题:日志体系梳理

      本文链接:https://www.haomeiwen.com/subject/qnvnuktx.html