我在Windows上运行了一个spring-boot应用程序。我在我的项目中添加了jansi(v1.8)依赖项,用于在Windows上启用彩色终端输出。
包含了spring-boot中提供的logback配置,即在logback.xml中添加了以下行。
<include resource="org/springframework/boot/logging/logback/base.xml" />
我不清楚在logback.xml中配置什么,以便它的日志语句按照spring-boot提供的base.xml进行着色。对不起,如果这是一个非常愚蠢的问题,我是一个新手回归。
谢谢!
答案 0 :(得分:17)
Logback文档的coloring部分对此进行了描述:
如上所述通过括号分组允许对子图案进行着色。从版本1.0.5开始,PatternLayout识别“%black”,“%red”,“%green”,“%yellow”,“%blue”,“%magenta”,“%cyan”,“%white”,“ %grey“,”%boldRed“,”%boldGreen“,”%boldYellow“,”%boldBlue“,”%boldMagenta“,”%boldCyan“,”%boldWhite“和”%highlight“作为转换字。这些转换字旨在包含子模式。由着色词包围的任何子图案将以指定的颜色输出。
还有一个示例配置文件,向您展示如何使用转换字:
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- On Windows machines setting withJansi to true enables ANSI
color code interpretation by the Jansi library. This requires
org.fusesource.jansi:jansi:1.8 on the class path. Note that
Unix-based operating systems such as Linux and Mac OS X
support ANSI color codes by default. -->
<withJansi>true</withJansi>
<encoder>
<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
答案 1 :(得分:17)
Spring boot增加了对此的支持:
只需设置
spring.output.ansi.enabled=always
答案 2 :(得分:0)
这是您可以使用的示例配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%t]){faint} %clr(%-40.40logger{39}.%M){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!--<property name="CONSOLE_LOG_PATTERN" value="%d %p [%c{1}] - %m%n"/>-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="ROLLING_APPENDER"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<!--<file>C:/tmp/var/demo/demo-app.log</file>-->
<!--<file>/var/log/mds/demo-app.log</file>-->
<file>${LOG_FOLDER}/demo-app.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_FOLDER}/demo-app.log.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<!--<fileNamePattern>
C:/tmp/var/demo-app.log.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>-->
<maxFileSize>100MB</maxFileSize>
<maxHistory>20</maxHistory>
<totalSizeCap>1000MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<logger name="com.hsbc.app.demo" additivity="false" level="debug">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING_APPENDER"/>
</logger>
<logger name="org.springframework" level="INFO"/>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING_APPENDER"/>
</root>
</configuration>