• 日志级别


    一、为什么要对日志进行分级

    无论是将日志输出到控制台,还是文件,其输出都会降低程序的运行效率。但由于调试、运行维护的需要,客户的要求等原因,需要进行必要的日志输出。这时就必须要在代码中加入日志输出语句。

    这些输出语句若在程序运行时全部执行, 则势必会降低运行效率。例如, 使用 System.out.println() 将信息输出到控制台,则所有的该输出语句均将执行。会大大降低程序的执行效率。而要使其不输出,唯一的办法就是将这些输出语句逐个全部删除。这是个费时费力的过程。

    将日志信息进行分级管理,便可方便的控制信息输出内容及输出位置:哪些信息需要输出,哪些信息不需要输出,只需在一个日志输出控制文件中稍加修改即可。而代码中的输出语句不用做任何修改。

    从这个角度来说,代码中的日志编写,其实就是写大量的输出语句。只不过,这些输出语句比较特殊,它们具有级别,在程序运行期间不一定被执行。它们的执行是由另一个控制文件控制。

    二、日志级别

    logback有5种级别,分别是TRACE < DEBUG < INFO < WARN < ERROR,定义于ch.qos.logback.classic.Level类中。 

    级别等级:等级从低到高分别是TRACE < DEBUG < INFO < WARN < ERROR

    logging.level设置日志级别,后面跟生效的区域,比如root表示整个项目,也可以设置为某个包下,也可以具体到某个类名(日志级别的值不区分大小写)

    如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来

    例如,如果设置优先级为WARN,那么ERROR、WARN 2个级别的log能正常输出,而INFO、DEBUG、TRACE级别的log则会被忽略。

    Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.

    Debug:指出细粒度信息事件对调试应用程序是非常有帮助的.

    Info:消息在粗粒度级别上突出强调应用程序的运行过程.

    Warn:输出警告及warn以下级别的日志.

    Error:输出错误信息日志.

    此外OFF表示关闭全部日志,ALL表示开启全部日志。

    通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。

    优先级高的将被打印出来。项目上生产环境时候建议把debug的日志级别重新调为warn或者更高(项目中用的是ERROR),避免产生大量日志。再测试阶段,要想每条sql都打印日志,则需要将日志级别设置为debug。

    注意:默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。实际开发中我们不需要直接添加该依赖。你会发现spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback

     
     
     
     
  • 相关阅读:
    javascript封装自定义滚动条方法,可自定义四个边框滚动条
    前端页面优化:javascript图片延迟加载
    VPS用LNMP安装WordPress
    结缘PDO
    Laravel踩坑笔记——illuminate/html被抛弃
    Android定时器实现方法[转]
    关于安装Android Studio的一些问题的解决方法
    nginx 多站点配置方法
    PHP5.6.x的新鲜事
    ThinkPHP学习手记——环境搭建
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15894218.html
Copyright © 2020-2023  润新知