欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Springboot日志-简单总结

程序员文章站 2022-06-13 15:32:29
...

三、Springboot日志-简单总结

1、日志框架

小张;开发一个大型系统;

1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件?

2、框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar;

3、高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar?

4、将以前框架卸下来?换上新的框架,重新修改之前相关的API;zhanglogging-prefect.jar;

5、JDBC—数据库驱动; 写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;

给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层;

市面上的日志框架:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…

日志门面 日志实现
JCL(Jakarta Commons Logging)、 SLF4j(Simple Logging Facade for Java) jboss-logging Log4j 、JUL(java.util.logging) Log4j2 、Logback

左边选一个门面(其实就是抽象层)、右边来选一个实现;

日志门面: SLF4J

日志实现:Logback

SpringBoot:

​ 底层是Spring框架,Spring框架默认是用JCL;SpringBoot选用 SLF4j和logback

日志的选择

  1. 日志门面上 jboss-loggin,是因为其应用环境过于特殊
  2. JCL门面最后依次更新为2014年,社区不在活跃
  3. Logback是log4j的升级版,而且其作者也是写出了SLF4J的作者
  4. JUL是java核心工具包,在log4j之后出现,功能不强大
  5. Log4j2,是Apache开发的日志,功能强大,只是用了log4j的名字,但是市场占用低下

2.(SLF4j)日志门面和具体日志实现的层次关系

图示

Springboot日志-简单总结

所有日志应该去使用slf4j提供的日志层次,用抽象进行调用

遗留问题:

  1. 不同框架内置了不同的日志框架,怎么统一替换为统一的日志包

    继续导入对应的jar包做适配

    1、将系统中其他日志框架先排除出去;

    2、用中间包来替换原有的日志框架;

    3、我们导入slf4j其他的实现;

Springboot日志-简单总结

3.springboot与日志使用(上述理论的实现)

springboot-logging启动类

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
 </dependency>

项目依赖的图

springboot-loggin实现不同日志转换的代理
Springboot日志-简单总结

总结:

  1. SpringBoot底层也是使用slf4j+logback的方式进行日志记录

  2. SpringBoot也把其他的日志都替换成了slf4j;

  3. 中间替换包

  4. 如果我们要引入其他框架,是一定要把这个框架的默认日志依赖移除掉

    SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要 把这个框架依赖的日志框架排除掉即可;

    <!-- spring-loggin进行替换 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring‐core</artifactId>
        <exclusions>
            <exclusion>
                <groupId>commons‐logging</groupId>
                <artifactId>commons‐logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

4.Springboot使用日志

  • 代码

    logger.trance("")

    **.debug("")

    **.info("")

    **.warn("")

    **.error("")

    这个也是日志的级别顺序,越靠下,级别越大。

    通过日志打印级别来控制需要打印的日志程度

  • 配置

    请看上面的标题的官方文档链接,会比较详细