spring引导日志覆盖颜色

kg7wmglp  于 2021-07-23  发布在  Java
关注(0)|答案(3)|浏览(789)

我希望在springansi彩色日志中使用不同的颜色来区分info、debug和trace,因为它们当前都设置为绿色(见下表)
从这里的文件https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-记录颜色编码输出的功能
使用 %clr 转换字。在最简单的形式中,转换器根据日志级别为输出着色,如下例所示: %clr(%5p) 下表描述了日志级别到颜色的Map:
levelColorFatalRedErrorRedwarnyAllowInfoGreenDebuggGreenTraceGreen级别
看来我需要重写 %clr 但我在文件里找不到任何关于这个的东西。
如果有区别,我使用log4j2,并希望将其构建到应用程序中。

goqiplq2

goqiplq21#

我看不到任何常规的/文档化的方法来覆盖级别范围内的颜色。例如:log4j2的colorconverter不喜欢为这种选项打开。
您可以尝试定义log42颜色插件实现,这是一个用log4j2注解的插件实现 Plugin 注解:

@Plugin(name = "color", category = PatternConverter.CATEGORY)

但不确定它是否工作或工作可靠,因为spring已经为此定义了一个。
这里是logback的colorconverter源代码。
顺便说一下,如果足够的话,可以从 CONSOLE_LOG_PATTERN 在log4j2的spring引导源代码中定义:

<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
wj8zmpe1

wj8zmpe12#

你可以使用grepconsole插件(idea)。在这里看到更多

iih3973s

iih3973s3#

首先,定义的%clr是一个logback转换规则,并且是带有颜色逻辑的规则。这个转换规则是在spring类defaultlogbackconfiguration中定义的。
在这里我们可以看到spring在logback配置器中添加了colorconverter和clr conversionword。
通过这个探索,我的结论是您必须创建自己的logback.xml文件(根据文档,它禁用spring默认配置)。有了这个文件,您可以像这样添加自己的转换规则:

<conversionRule conversionWord="nanos" 
              converterClass="chapters.layouts.MySampleConverter" />

在此之后,应该使用上面创建的转换词(而不是%clr)更改logging.pattern.console属性。

相关问题