springboot如何根据不同的日志级别显示不同的颜色

 更新时间:2023年08月28日 15:32:27   作者:海中源  
这篇文章主要介绍了springboot如何根据不同的日志级别显示不同的颜色问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

springboot根据不同的日志级别显示不同的颜色

logback配置

<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
	<!--设置重要-->
    <property name="CONSOLE_LOG_PATTERN"
              value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- 每天生成日志文件,文件大小超过50则新生成一个文件,
         同时将旧文件按${LOG_PATH}/info-%d{yyyyMMdd}.log.%i.zip格式压缩,文件保存30天 -->
    <!--<appender name="INFO_FILE"-->
    <!--class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--&lt;!&ndash;<File>${LOG_PATH}/innovation-info.log</File> &lt;!&ndash; 日志名称 &ndash;&gt;&ndash;&gt;-->
    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
    <!--<fileNamePattern>${LOG_PATH}/innovation-info-%d{yyyy-MM-dd}.%i.log-->
    <!--</fileNamePattern>-->
    <!--<timeBasedFileNamingAndTriggeringPolicy-->
    <!--class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
    <!--<maxFileSize>50MB</maxFileSize>-->
    <!--</timeBasedFileNamingAndTriggeringPolicy>-->
    <!--<maxHistory>30</maxHistory>-->
    <!--</rollingPolicy>-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
    <!--<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-->
    <!-- -%msg%n-->
    <!--</Pattern>-->
    <!--</layout>-->
    <!--</appender>-->
    <!--<appender name="DEBUG_FILE"-->
    <!--class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--&lt;!&ndash;<File>${LOG_PATH}/innovation-debug.log</File>&ndash;&gt;-->
    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
    <!--<fileNamePattern>${LOG_PATH}/innovation-debug-%d{yyyy-MM-dd}.%i.log-->
    <!--</fileNamePattern>-->
    <!--<timeBasedFileNamingAndTriggeringPolicy-->
    <!--class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
    <!--<maxFileSize>50MB</maxFileSize>-->
    <!--</timeBasedFileNamingAndTriggeringPolicy>-->
    <!--<maxHistory>30</maxHistory>-->
    <!--</rollingPolicy>-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
    <!--<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-->
    <!-- -%msg%n-->
    <!--</Pattern>-->
    <!--</layout>-->
    <!--</appender>-->
    <!--<appender name="ERROR_FILE"-->
    <!--class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
    <!--<level>ERROR</level>-->
    <!--</filter>-->
    <!--&lt;!&ndash;<File>${LOG_PATH}/innovation-error.log</File>&ndash;&gt;-->
    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
    <!--<fileNamePattern>${LOG_PATH}/innovation-error-%d{yyyy-MM-dd}.%i.log-->
    <!--</fileNamePattern>-->
    <!--<timeBasedFileNamingAndTriggeringPolicy-->
    <!--class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
    <!--<maxFileSize>50MB</maxFileSize>-->
    <!--</timeBasedFileNamingAndTriggeringPolicy>-->
    <!--<maxHistory>30</maxHistory>-->
    <!--</rollingPolicy>-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
    <!--<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-->
    <!-- -%msg%n-->
    <!--</Pattern>-->
    <!--</layout>-->
    <!--</appender>-->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <!--<appender-ref ref="INFO_FILE"/>-->
        <!--<appender-ref ref="ERROR_FILE"/>-->
        <!--<appender-ref ref="DEBUG_FILE"/>-->
    </root>

application.yml配置

#配置logback配置文件位置
logging:
  config: classpath:spring-logback.xml
  level:
    com:
      wx:
       tourism: debug
    org:
      springframework:  info
      hibernate: debug
#  path: "c:/tourism/logs"

springboot中日志的简单使用

日志基础

日志的作用

1.编程期间调试代码

2.运营期记录信息

  • 1)记录日常运营的重要信息(峰值流量,平均响应时常。。。)
  • 2)记录应用报错信息
  • 3)记录运维过程数据(扩容,报警。。。。。)

日志的使用

1.创建记录日志的对象

private  static  final Logger log = LoggerFactory.getLogger(StudentController.class);

注意不要引错包了

2使用lombok 提供的 @Slf4j简化开发,减少日志对象的声明操作

日志的级别

日志等级可以分为5个,从低到高分别是:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

日志等级说明

  • DEBUG:程序调试bug时使用
  • INFO:程序正常运行时使用
  • WARNING:程序未按预期运行时使用,但并不是错误,如:用户登录密码错误
  • ERROR:程序出错误时使用,如:IO操作失败
  • CRITICAL:特别严重的问题,导致程序不能再继续运行时使用,如:磁盘空间为空,一般很少使 用

默认的是WARNING等级,当在WARNING或WARNING之上等级的才记录日志信息。

日志等级从低到高的顺序是: DEBUG < INFO < WARNING < ERROR < CRITICAL

日志控制

日志只会显示等级大于等于当前级别的日志信息

在Springboot启动时默认使用的时INFO级别的日志,所以并不会显示DEBUG级别的日志

调低级别的方式

1 方式一 直接在Springboot配置文件中设置 debug : true 则开启DEBUG级别

2.方式二

这样即可设置根路径下日志级别为debug

设置某个包的日志级别

这个带表整个项目是debug级别的日志 这个包下是info级别的日志 但这样设置特别麻烦所以可以设置分组

设置分组给每一组设置不同的日志级别

小结

1.日志用于记录开发调试与运维过程消息

2.日志的级别通常使用的是四种 分别是DEBUG INFO WARN ERROR

3.可以通过日志组或代码包的形式进行日志级别的控制

日志输出格式控制

日志默认格式

PID : 进程ID,用于表明当前操作所处线程,当多服务同时记录日志时,该值可用于协助程序员调试程序

所属类/接口名 : 当前显示信息为Springboot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除

设置日志输出格式

  • 其中%d 为日期
  • %m为消息
  • %n为换行
  • %p 级别
  • %t 为线程名 %16t 则线程名占16位
  • %clr 是添加颜色

例如 %clr(%m) 则日志消息带有颜色

记录日志到文件

默认记录到你当前项目下的文件中

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Springcloud sentinel安装和使用方法解析

    Springcloud sentinel安装和使用方法解析

    这篇文章主要介绍了Springcloud sentinel安装和使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Java数据结构(线性表)详解

    Java数据结构(线性表)详解

    本文主要介绍了Java数据结构(线性表)的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Spring Boot+Jpa多数据源配置的完整步骤

    Spring Boot+Jpa多数据源配置的完整步骤

    这篇文章主要给大家介绍了关于Spring Boot+Jpa多数据源配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Java阻塞队列的实现及应用

    Java阻塞队列的实现及应用

    这篇文章主要介绍了剖析Java中阻塞队列的实现原理及应用场景,这里也对阻塞和非阻塞队列的不同之处进行了对比,需要的朋友可以参考下
    2021-10-10
  • gradle中的增量构建浅析

    gradle中的增量构建浅析

    这篇文章主要介绍了gradle中的增量构建,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Java中Array、List、ArrayList的区别及说明

    Java中Array、List、ArrayList的区别及说明

    这篇文章主要介绍了Java中Array、List、ArrayList的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 浅谈Java中@Autowired和@Inject注解的区别和使用场景

    浅谈Java中@Autowired和@Inject注解的区别和使用场景

    本文主要介绍了浅谈Java中@Autowired和@Inject注解的区别和使用场景,@Autowired注解在依赖查找方式和注入方式上更加灵活,适用于Spring框架中的依赖注入,而@Inject注解在依赖查找方式上更加严格,适用于Java的依赖注入标准,感兴趣的可以了解一下
    2023-11-11
  • Java线程之守护线程(Daemon)用法实例

    Java线程之守护线程(Daemon)用法实例

    这篇文章主要介绍了Java线程之守护线程(Daemon)用法,较为详细的分析了守护线程的功能与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • CentOS 7快速安装jdk

    CentOS 7快速安装jdk

    这篇文章主要为大家详细介绍了CentOS 7快速安装jdk的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • IDEA插件之Mybatis Log plugin 破解及安装方法

    IDEA插件之Mybatis Log plugin 破解及安装方法

    这篇文章主要介绍了IDEA插件之Mybatis Log plugin 破解方法及安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09

最新评论