如何向Azure管道控制台添加颜色?



我可以使用下面的XML文件为本地Intellij控制台添加颜色,但我没有为Azure管道中的控制台输出添加任何颜色。

我遵循这个教程:(https://learn.microsoft.com/en-us/azure/developer/java/sdk/logging-logback)。

Azure控制台使用默认颜色,但会选择XML中指定的布局。

我需要在Azure中设置颜色才能工作吗?

XML>
<?xml version="1.0" encoding="UTF-8"?>
<configuration level="${LOG_LEVEL}">
    <!-- disable startup logging for logback -->
    <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
    <property name="USER_HOME" value="logs"/>
    <appender name="STDOUT_INFO" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>%blue([%d{ISO8601}]) %highlight(%green(%-5level)) %blue([%logger{100}]:) %green(%msg%n%throwable)
                </Pattern>
            </encoder>
    </appender>
    <!--    <logger name="app" level="DEBUG" additivity="true">-->
    <!--    </logger>-->
    <root additivity="false">
        <appender-ref ref="STDOUT_INFO"/>
    </root>
</configuration>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.4.4</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.4.4</version>
</dependency>

更新:

我最终使用了下面的解决方案。

<appender name="STDOUT_WARN" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <if condition='property("LOG_ENV").equals("LOCAL")'>
            <then>
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                    <Pattern>%blue([%d{ISO8601, Europe/Paris}]) [%t] %blue([%logger{100}]:) %yellow(%msg%n%throwable)
                    </Pattern>
                </encoder>
            </then>
            <else>
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                    <Pattern>##[WARNING][%d{ISO8601, Europe/Paris}] [%t] [%logger{100}]: %msg%n%throwable</Pattern>
                </encoder>
            </else>
        </if>
    </appender>

管道上的颜色处理与标准控制台略有不同。没有DEBUG, INFO, WARN, ERROR和CRITICAL,因为没有要显示的级别过滤。

Microsoft为您发布的实际文本创建了几个前缀。他们向控制台添加颜色或部分和组。基本上,您需要这样的内容:

##[group]Beginning of a group
##[warning]Warning message
##[error]Error message
##[section]Start of a section
##[debug]Debug text
##[command]Command-line being run
##[endgroup]

这是直接摘自这篇文章。

最新更新