springboot 日志彩色消失的2种解决方案

时间:2022-09-11 08:48:17

springboot 日志彩色消失

方案一:

添加参数 -Dspring.output.ansi.enabled=ALWAYS

如下图所示:

springboot 日志彩色消失的2种解决方案

重新运行 的效果

springboot 日志彩色消失的2种解决方案

方案二:

springboot默认是logback日志,初始构建日志是还有颜色的,但是由于某种操作之后颜色消失了,如何进行配置文件配置呢?

步骤如下:

相应目录resource下增加logback.xml

springboot 日志彩色消失的2种解决方案

配置文件代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?xml version="1.0" encoding="UTF-8"?>
 
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
    <!--<include resource="org/springframework/boot/logging/logback/base.xml"
        /> -->
 
    <!--定义日志文件的存储地址和前缀名 -->
    <property name="LOG_HOME" value="logs" />
    <property name="LOG_PREFIX" value="zuul-gateway" />
 
    <!-- 一般信息按照每天生成日志文件 -->
    <appender name="INFO_FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/${LOG_PREFIX}-info.log</File>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 每天一归档 -->
            <fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-info-%d{yyyyMMdd}.log.%i
            </fileNamePattern>
            <!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
                -%msg%n</Pattern>
        </encoder>
    </appender>
 
    <!--错误信息按照每天生成日志文件 -->
    <appender name="ERROR_FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_HOME}/${LOG_PREFIX}-error.log</File>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 每天一归档 -->
            <fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-error-%d{yyyyMMdd}.log.%i
            </fileNamePattern>
            <!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
                -%msg%n</Pattern>
        </encoder>
    </appender>
 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 :
            |%blue(%thread)  线程 如 :DiscoveryClient-CacheRefreshExecutor-0-->
            <pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level)  |%green(%logger:%line) |%black(%msg%n)</pattern>
        </encoder>
    </appender>
 
    <!-- 日志输出级别 这样设置不打印日志 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>
 
</configuration>

stdout核心代码如下:其中yellow等颜色是对输出日志颜色的描述:

?
1
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level)  |%green(%logger:%line) |%black(%msg%n)</pattern>

运行效果图:

springboot 日志彩色消失的2种解决方案

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

原文链接:https://shinian.blog.csdn.net/article/details/82807207