[spring-projects/spring-boot]将“明亮”的 AnsiColor 变体添加到 Logback 和 Log4J ColorConverters

2024-05-08 775 views
2

目前 org.springframework.boot.logging.logback.ColorConverter不支持“明亮”颜色,尽管AnsiColor包含所有这些颜色的代码。作为一个非常老的班级,我觉得原因很简单,就是没有人更新可用的颜色,但我可能是错的,可能有理由禁止这些颜色

回答

0

感谢您的建议,但我们不会对其进行任何增强,AnsiColors因为它已在 3.0 中删除

6

尽管我们删除了AnsiColors,但我们仍然保留AnsiColor并支持 Logback 和 Log4J2 中的颜色代码。我认为ColorConverter如果有人愿意贡献课程,我们可以考虑对课程进行更新。

1

哎呀。感谢您发现这一点,@philwebb。

6

也许这太不相关了,但恕我直言,添加也无妨

<logger name="org.testcontainers" level="INFO" /> <logger name="com.github.dockerjava" level="WARN"/>

到 org/springframework/boot/logging/logback/defaults.xml

现在是一个无处不在的库,并且考虑到还有其他记录器默认值:)这是我每次都需要在每个基本设置上触摸 logback 的唯一原因

4

@philwebb @wilkinsona 我可以接这个吗? @wilkinsona 我如何找到更多需要贡献的问题?

问候

6

@nightswimmings,这与这个问题确实无关,不幸的是,我认为它不会工作,因为 Testcontainers 在 Spring Boot 有机会初始化日志系统之前执行其日志记录。

1

@Abhijeetmishr 谢谢,这都是你的了。

我如何找到更多需要贡献的问题?

标记为理想贡献的问题是您最好的选择。但我们有时却没有。

2

您好,CodeConverter 类中省略白色和黑色有什么原因吗? (对于 Log4J 和 Logback)

    private static final Map<String, AnsiElement> ELEMENTS;

static {
    Map<String, AnsiElement> ansiElements = new HashMap<>();
    ansiElements.put("faint", AnsiStyle.FAINT);
    ansiElements.put("red", AnsiColor.RED);
    ansiElements.put("green", AnsiColor.GREEN);
    ansiElements.put("yellow", AnsiColor.YELLOW);
    ansiElements.put("blue", AnsiColor.BLUE);
    ansiElements.put("magenta", AnsiColor.MAGENTA);
    ansiElements.put("cyan", AnsiColor.CYAN);
    ELEMENTS = Collections.unmodifiableMap(ansiElements);
}

感谢您的回答。奥利维尔弟兄

8

谢谢@krzyk,但请让我们给@Abhijeetmishr 一个解决这个问题的机会。

1

@nightswimmings,这与这个问题确实无关,不幸的是,我认为它不会工作,因为 Testcontainers 在 Spring Boot 有机会初始化日志系统之前执行其日志记录。

谢谢安迪。我不想延长曾经被标记为离题的对话,但我想以某种方式回答你。我只谈论defaults.xml,我理解,正如我们在另一期中所说的那样,程序化的spring默认值是另一回事,但是通过继承spring的base.xml(/defaults.xml)来放置logback.xml或logback-test.xml将开箱即用

请将此评论标记为题外话,我深表歉意

0

结束有利于公关。谢谢@Abhijeetmishr!

7

@omlip 我看不出有任何具体原因可以省略它们,但我可以看到 PR 包含它们,所以我将扩大它的范围。

9

@snicoll 谢谢