我可以使用下面的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]
这是直接摘自这篇文章。