当前位置: 首页 > 知识库问答 >
问题:

Spring Boot日志覆盖颜色

严项明
2023-03-14

我希望在Spring Ansi着色日志中使用不同的颜色来区分INFO、DEBUG和TRACE,因为它们目前都设置为绿色(见下表)

从这里的文档中https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging-color-coded-output

颜色编码是通过使用%clr转换字配置的。在其最简单的形式中,转换器根据日志级别为输出着色,如下例所示:

%clr(%5p)下表描述了日志级别到颜色的映射:

我似乎需要重写%clr转换字,但我在文档中找不到任何关于它的内容。

共有1个答案

张子墨
2023-03-14

我没有看到任何常规的/文档化的方法来覆盖级别范围内的颜色。例如:log4j2的ColorConverter不喜欢打开这种选项。
您可以尝试定义您的Log42颜色插件实现,即用log4j2plugin批注的插件实现:

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

但不确定它是否工作或可靠,因为Spring已经为此定义了一个。
下面是用于日志的ColorConverter源代码。

顺便说一下,如果足够的话,您可以从log4j2的Spring Boot源代码中定义的console_log_pattern开始定义一个模式:

<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>
 类似资料:
  • 我正在开发一个应用程序,使用我的另一个项目作为maven依赖项。 期望 我希望我的依赖项使用自己的回退.xml登录自己的文件。我希望应用程序使用自己的 logback.xml文件登录到控制台和一个与依赖项不同的文件。我希望这两个文件都位于应用程序jar附近的日志文件夹中。 它现在做什么 但是目前,应用程序和依赖项都使用应用程序的logback.xml,所有内容都记录在控制台和同一个文件中。 我该如

  • 我有eclipse中的源代码(java语言)。然后我检查保险范围。我给4作为输入。但我不知道颜色(红、黄、绿)是什么意思。以下是代码(ifElse.java): 那么,声明80%、分支机构50%和术语50%的含义是什么?怎么计算呢?非常感谢。

  • 问题内容: 我使用了tomcat,并简单地覆盖了默认的日志系统。如何在我的Spring应用程序中启用Wildfly上的Logback日志记录? 我在tomcat上的Logback.xml 问题答案: 您可以使用logback来配置应用程序中的日志记录。您不能使用logback为服务器配置日志记录。 要在配置中使用logback,您需要将更改为false或创建一个不包含子系统的。您还需要在部署中包括

  • 我们正在使用Nimbus LaF开发Swing应用程序。我们已经更改了许多Nimbus默认值(控件、文本、NimbusLightbackground等)以具有黑暗主题。 现在,我们在呈现JLists和JComboxes时遇到了很大的麻烦,因为呈现程序显然使用了NimbusLightBackground颜色作为所选文本的前景。这会导致深蓝色背景上出现深灰色文本-不好。 我曾尝试通过UIManager

  • 问题内容: 我正在使用Log4j2 ver 2.3 log4j2.xml看起来像: 当前一天的日志被当天的某些日志覆盖时,所有方法都可以正常工作到第二天。 示例:catalina.2018-03-21.log昨天(3月21日)很好,但是今天被2018-03-22的某些日志覆盖,当时catalina.2018-03-22.log包含了今天(3月22日)的其余日志) 有什么想法吗? 问题答案: Log

  • 有没有一种方法可以在不更新host.json文件的情况下覆盖Azure函数应用程序的默认日志级别?我希望我的函数只在dev环境中将跟踪日志传递给应用程序洞察。我在想,如果一个环境变量可以设置,函数将知道什么时候传递日志。