我希望在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,并希望将其构建到应用程序中。
3条答案
按热度按时间goqiplq21#
我看不到任何常规的/文档化的方法来覆盖级别范围内的颜色。例如:log4j2的colorconverter不喜欢为这种选项打开。
您可以尝试定义log42颜色插件实现,这是一个用log4j2注解的插件实现
Plugin
注解:但不确定它是否工作或工作可靠,因为spring已经为此定义了一个。
这里是logback的colorconverter源代码。
顺便说一下,如果足够的话,可以从
CONSOLE_LOG_PATTERN
在log4j2的spring引导源代码中定义:wj8zmpe12#
你可以使用grepconsole插件(idea)。在这里看到更多
iih3973s3#
首先,定义的%clr是一个logback转换规则,并且是带有颜色逻辑的规则。这个转换规则是在spring类defaultlogbackconfiguration中定义的。
在这里我们可以看到spring在logback配置器中添加了colorconverter和clr conversionword。
通过这个探索,我的结论是您必须创建自己的logback.xml文件(根据文档,它禁用spring默认配置)。有了这个文件,您可以像这样添加自己的转换规则:
在此之后,应该使用上面创建的转换词(而不是%clr)更改logging.pattern.console属性。