Java日志系统的总结

作者: 问题_解决_分享_讨论_最优 | 来源:发表于2019-12-19 09:52 被阅读0次

    日志系统归类以及关系

    常用的日志框架: slf4j、logback 、log4j、log4j2、JUL(java util logging)、jboss-logging、JCL(jakarta common logging)

    log4j: 最开始的一个日志系统。

    JUL: jdk自带的日志系统

    jboss-logging: jboss公司的日志系统

    JCL: apache 开源的日志框架

    slf4j: 基于门面模式的一个对日志框架进行抽象的接口(类似于JDBC驱动)

    logback: 是基于slf4j接口进行实现的一个具体的日志系统

    log4j2: 同样是基于slf4j接口实现的一个具体日志系统,该系统使用了disruptor库,在异步的情况下,性能提高很多

    日志的三个组件

    Logger

    一个日志系统可以有多个Logger,可以根据自己的情况配置,一个logger可以有多个appender

    Appender

    代表的是日志的输出目的地。可以输出到Console, File, JDBC, JMS ,Kafka ,NOSQL, Socket等。 它可以分为异步Appender 和非异步Appender

    Layout

    Layout:作用为控制输出流的格式。可以为Parttern格式,JSON格式,HTML格式,CSV格式,XML格式等。

    <PatternLayout >

    <Charset>UTF-8</Charset>

    <!-- 时间 类型 线程 文件位置 具体的日志消息 换行-->

    <Pattern>%d %p %c{1.} [%t] %F %m %n</Pattern>

    </PatternLayout>

    slf4j的使用

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    public class LoggerTest{

           private static final Logger LOG = LoggerFactory.getLogger(LoggerTest.class);

            public void test(){

                      //日志级别从低到高:

                 //trace < debug < info < warn < errorLOG.trace(" trace log"); 

                        LOG.debug(" debug log");   

                            LOG.info(" info log");   

                          LOG.warn(" warn log");   

                          LOG.error(" error log"); 

      }

    }

    项目中构建日志系统

    使用slfj4抽象接口来编程,这样不用关系底层的实现是什么,只需要最后配置需要的种类即可。

    注意:在构建项目的时候,通常会使用第三方的框架,但是多个第三方框架可能会使用不同的日志系统,为了统一日志,可以使用如下步骤.

    统一日志框架步骤:

    将第三方框架中的日志系统排除掉

    <dependency>

                  <groupId>org.springframework</groupId>

                   <artifactId>spring-core</artifactId>

                            <exclusions>

                                  <exclusion>

                                       <groupId>commons-logging</groupId>

                                      <artifactId>commons-logging</artifactId>

                                   </exclusion>

                              </exclusions>

    </dependency>

    用中间适配包来替换原来的日志框架

    导入我们需要的slf4j实现


    打个广告,本人博客地址是:风吟个人博客

    相关文章

      网友评论

        本文标题:Java日志系统的总结

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