Java 将slf4j格式化为使用颜色记录消息类型
我正在使用slf4j登录我的Java应用程序。它涉及大量日志记录和日志监控Java 将slf4j格式化为使用颜色记录消息类型,java,logging,slf4j,Java,Logging,Slf4j,我正在使用slf4j登录我的Java应用程序。它涉及大量日志记录和日志监控 有时,当整个日志以黑色打印时,从日志中读取和查找信息非常困难。 为了使其更具可读性,是否可以用不同的颜色记录不同类型的消息 例如,所有错误级别消息均为红色或其他字体,所有信息级别消息均为蓝色或其他字体。 欢迎任何建议或帮助。 Thnx.我想到了两种解决方案。它们不是颜色,而是替代解决方案: 在文件追加器配置中,您可以将模式配置为包含日志级别(错误、警告等)。然后您可以对文件进行grep,以便按级别过滤消息 您可以配置两
有时,当整个日志以黑色打印时,从日志中读取和查找信息非常困难。
为了使其更具可读性,是否可以用不同的颜色记录不同类型的消息
例如,所有错误级别消息均为红色或其他字体,所有信息级别消息均为蓝色或其他字体。
欢迎任何建议或帮助。
Thnx.我想到了两种解决方案。它们不是颜色,而是替代解决方案:
希望有帮助。无法更改
slf4j
日志的颜色,因为没有格式化程序。SLF4J是应用程序和某些日志记录工具(例如Log4j或Logback)之间的中间件
如前所述,您可以在Log4j输出中更改颜色。我建议您使用from一些您必须记住的东西 首先,SLF4J只是一个日志外观。实际日志消息的处理方式取决于它使用的绑定。因此,您的问题是无效的,相反,您应该引用您想要使用的实现(LogBack?Log4J?等) 第二,“着色”在大多数情况下是没有意义的。例如,如果您引用的是纯文本日志文件,我们无法控制颜色,因为它们都是纯文本(除非您的编辑器为日志消息格式内置了特殊的语法高亮显示)。如果您希望在控制台/终端中看到颜色,或者您正在将日志输出为允许您包含颜色信息(例如HTML)的文件格式,则此选项可能很有意义 考虑到这两个想法,下面是我的建议
LogBack内置了对控制台输出着色的支持。如果您正在寻找在控制台输出中查看颜色的方法,并且您被允许使用LogBack,这就是您要查找的内容。我对日志记录级别和包都使用过滤器。此示例来自Spring boot application.properties
logging.level.root=warn
logging.level.org.springframework=warn
logging.level.org.hibernate=warn
logging.level.org.starmonkey.brown=DEBUG
通过这种方式,我只看到希望看到的消息将下一个appender添加到logback.xml中,以使日志输出着色:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<Pattern>%d %highlight(%-5level) [%thread] %cyan(%logger{15}): %msg%n</Pattern>
</encoder>
</appender>
%d%高亮显示(%-5level)[%thread]%青色(%logger{15}):%msg%n
如果您输入自己的IDE名称,可能会有所帮助。您可以询问如何将错误消息映射到Stderr而不是Stdout。日志文件是纯文本文件。没有颜色的概念。但是,您可能会找到一些可以查看日志的内容,这些内容可以为您对日志进行颜色编码…谢谢您的回答,但我使用的是Log4j,我需要从不同的系统收集日志文件并对其进行分析。。因此,在控制台中获取彩色输出是没有用的。我需要日志文件中的颜色。。但是谢谢你的建议,我将尝试HTML输出。如果你可以编写一个带有颜色的纯文本文件,那么你可以期待。然而,这是无法实现的。您可以编写自己的查看器来分析日志消息,并对其进行格式化和显示。我打赌如果你愿意的话。使用HTML加上一些CSS可能是你的方法。谢谢你的回答,但是你所有的建议都是为了在控制台中获得彩色输出。因为我需要从多个系统收集日志文件并进行分析,所以我需要对日志文件进行着色。“要着色的日志文件”?嗯……:)@Panshul将多个日志文件合并到一个try Otros日志查看器中。几年来,我一直在使用它来合并几个基于Java的Windows服务的日志。谢谢!!!这对我有用!在找到它之前,我在谷歌上搜索了几个小时的org.slf4j.Logger
。事实证明,这与spring引导设置有关,而与slf4j记录器无关。再次感谢!