Logback 颜色编码在 Grafana Loki 日志中不起作用

问题描述 投票:0回答:2

我有一个容器化的 Spring Boot 应用程序。以下是我的 Spring Boot 应用程序的 logback.xml ,

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_PATH" value="logs" />
    <appender name="STDOUT"
        class="ch.qos.logback.core.ConsoleAppender">
        <encoder>

            <pattern>

                %d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %highlight(%-5level)
                %cyan(%logger{36}) - %msg %n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

我正在将日志从该容器推送到 Fluentd,并进一步推送到 Loki。但是当我在 grafana loki 中看到日志时,我的日志中出现了以下垃圾字符。

enter image description here 此外,日志级别的颜色编码也无法正常工作。

grafana logback grafana-loki
2个回答
0
投票

您看到的是 ANSI 控制序列。它们用于控制台上的颜色编码。正如您所注意到的,Graphana 不支持 ANSI 颜色,因为它有其他方式来分隔不同的日志级别。 要删除 Graphana 中的多余字符,唯一的选择是关闭日志中的颜色编码。如果您想要或需要在本地日志中进行颜色编码,则必须配置两种不同的附加程序,一种用于本地日志(带颜色编码),另一种用于 Graphana(不带颜色编码)。


0
投票

问题在于序列的重置部分。由于某种原因,Grafana 解析器似乎不喜欢序列的

reset
(关闭)部分中的
0;
1;

例如:

  • [0;32mINFO[0;32m
    不起作用。
  • [0;32mINFO[32m
    会起作用的。

您可以看到有些是如何工作的,有些则不在这里: enter image description here

区别只是序列的重置(关闭)部分。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.