zoukankan      html  css  js  c++  java
  • 日志框架总结

    1 日志框架简介

    (参考:http://xfhnever.com/2015/09/20/log-java-2/)
    各种日志框架可以分为两类:

    1. 日志实现框架:jdk自带的logging(jul),log4j1、log4j2、logback
    2. 日志门面,即提供统一的接口不提供实现:apache的commons-logging(jcl)、slf4j

    2 日志实现框架需要的jar包

    1. log4j:

      • log4j:log4j1的全部内容
    2. log4j2:

      • log4j-api:log4j2定义的API
      • log4j-core:log4j2上述API的实现
    3. logback:

      • logback-core:logback的核心包
      • logback-classic:logback实现了slf4j的API

    3 slf4j需要的jar包

    1. slf4j-api

    4 slf4j转向具体日志实现框架

    项目中使用slf4j接口进行编程,而slf4j并没有整整的日志实现,需要我们加入日志实现依赖,并引入slf4j到某个具体日志实现的桥梁

    1. slf4j-jdk14:slf4j到jdk-logging的桥梁
    2. slf4j-log4j12:slf4j到log4j1的桥梁(之前一直以为是到log4j2的桥梁,引起错误)
    3. log4j-slf4j-impl:slf4j到log4j2的桥梁(log4j2使用该包)
    4. logback-classic:slf4j到logback的桥梁
    5. slf4j-jcl:slf4j到commons-logging的桥梁

    5 日志实现转向slf4j

    例如包使用log4j作为日志实现,而我们的项目使用log4j2作为日志实现,那么我们可以将log4j的日志输出交给slf4j,slf4j再交给log4j2来输出。这一部分主要用来进行实际的日志框架之间的切换

    1. jul-to-slf4j:jdk-logging到slf4j的桥梁
    2. log4j-over-slf4j:log4j1到slf4j的桥梁
    3. jcl-over-slf4j:commons-logging到slf4j的桥梁
    4. log4j-to-slf4j:将使用log4j2输出的日志桥接至slf4j

    6 最佳实践

    一般使用slf4j提供统一的日志接口,加上slf4j到具体日志实现的桥梁,最后再引入具体的日志实现。如使用log4j2的配置

            <!--slf4j-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.25</version>
            </dependency>
    
            <!--桥梁-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j-impl</artifactId>
                <version>2.9.1</version>
            </dependency>
    
            <!--log4j2-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.11.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.11.0</version>
            </dependency>
    

    参考

    1. http://xfhnever.com/2015/09/20/log-java-2/
    2. https://www.cnblogs.com/hafiz/p/6170702.html
  • 相关阅读:
    log4net 无法输出日志,跟踪发现IsErrorEnabled等,都是Flase
    jquery load加载不了内容
    数据库中的表还是一定要建索引
    最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册
    背景自动滚动
    理解JavaScript函数(函数和对象的区别和联系)
    代码运行框
    ie8以ie7方式解析
    js开发工具集
    cssZip
  • 原文地址:https://www.cnblogs.com/set-cookie/p/8836496.html
Copyright © 2011-2022 走看看