格式化 slf4j 以使用颜色记录消息类型

2022-09-02 13:56:15

我正在使用slf4j在我的Java应用程序中登录。它涉及大量的日志记录和日志监控。
有时,当整个日志以黑色打印时,从日志中读取和查找信息确实很困难。
只是为了使其更具可读性,是否可以以不同的颜色记录不同类型的消息?
例如,所有错误级别消息均为红色或不同字体大小,所有 Info 级别消息均为蓝色和不同字体大小。

欢迎任何建议或帮助。呵呵。


答案 1

无法更改日志记录的颜色,因为没有格式化程序。SLF4J 是应用程序和某些日志记录工具(例如 Log4j 或 Logback)之间的中间件。slf4j

您可以在Log4j输出中更改颜色,如此所述。我建议使用jcabi-logMycolorLayout


答案 2

你必须记住的事情。

首先,SLF4J只是一个伐木门面。如何处理实际的日志消息取决于它使用的绑定。因此,您的问题无效,相反,您应该引用要使用的实现(LogBack?Log4J?等)

其次,在大多数情况下,“着色”不是有意义的东西。例如,如果您引用的是纯文本日志文件,则我们无法控制颜色,因为它们都是纯文本(除非您的编辑器具有内置用于日志消息格式的特殊语法突出显示)。如果您想在控制台/终端中查看颜色,或者要将日志输出为允许您包含颜色信息(例如.HTML)的文件格式,则可能会有所帮助。

考虑到这两个想法,这是我的建议。

LogBack 内置了对控制台输出中着色 http://logback.qos.ch/manual/layouts.html#coloring 的支持。如果您正在寻找在控制台输出中查看颜色的方法,并且允许您使用LogBack,那么这就是您正在寻找的。


推荐