美文网首页
日志体系梳理

日志体系梳理

作者: 知止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也是有诸多亮点,用户可以根据项目需求和个人习惯,选择合适的日志实现。

    相关文章

      网友评论

          本文标题:日志体系梳理

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