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) 则日志消息带有颜色

记录日志到文件

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

总结

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

相关文章

  • IDEA 自定义方法注解模板的实现方法

    IDEA 自定义方法注解模板的实现方法

    这篇文章主要介绍了IDEA 自定义方法注解模板的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • java连接SQL Server数据库图文教程(自用)

    java连接SQL Server数据库图文教程(自用)

    在Java应用程序中,我们经常需要与数据库进行交互,下面这篇文章主要给大家介绍了关于java连接SQL Server数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 利用github搭建个人maven仓库的方法步骤

    利用github搭建个人maven仓库的方法步骤

    这篇文章主要介绍了利用github搭建个人maven仓库的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 使用vscode搭建javaweb项目的详细步骤

    使用vscode搭建javaweb项目的详细步骤

    我个人是很喜欢VsCode的,开源免费、功能全面,所以为了方便,我把我几乎所有的运行都集成到了VsCode上来,JavaWeb也不例外,下面这篇文章主要给大家介绍了关于使用vscode搭建javaweb项目的相关资料,需要的朋友可以参考下
    2022-11-11
  • springboot获取真实ip地址的方法实例

    springboot获取真实ip地址的方法实例

    在使用springboot时,需要获取访问客户端的IP地址,所以下面这篇文章主要给大家介绍了关于springboot获取真实ip地址的相关资料,需要的朋友可以参考下
    2022-06-06
  • java字符串所有操作方法汇总

    java字符串所有操作方法汇总

    这篇文章主要介绍了java字符串所有操作方法汇总,需要的朋友可以参考下,在实际的编程中,我们经常需要对字符串进行各种操作,例如连接、截取、替换等,本文将按类别介绍一些Java字符串的常用方法,帮助读者更好地理解和使用
    2023-11-11
  • SpringBoot集成I18n国际化文件在jar包外生效问题

    SpringBoot集成I18n国际化文件在jar包外生效问题

    这篇文章主要介绍了SpringBoot集成I18n国际化文件在jar包外生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Mybatis返回int或者Integer类型报错的解决办法

    Mybatis返回int或者Integer类型报错的解决办法

    这篇文章主要介绍了Mybatis返回int或者Integer类型报错的解决办法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • 使用Java实现5种负载均衡算法实例

    使用Java实现5种负载均衡算法实例

    负载均衡指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助,这篇文章主要给大家介绍了关于使用Java实现5种负载均衡算法的相关资料,需要的朋友可以参考下
    2021-09-09
  • Java线程池ThreadPoolExecutor的使用及其原理详细解读

    Java线程池ThreadPoolExecutor的使用及其原理详细解读

    这篇文章主要介绍了Java线程池ThreadPoolExecutor的使用及其原理详细解读,线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,线程池线程都是后台线程,需要的朋友可以参考下
    2023-12-12

最新评论