如何更改log4j日志输出的颜色

12

我目前正在处理一个Java项目,我们正在使用日志记录。无论日志级别为INFO、ERROR等,所有日志都以纯黑色文本打印。

我该如何覆盖这些输出的颜色?例如,所有ERROR日志将变为红色,而所有WARN日志将变为橙色等。

谢谢。

编辑:我成功下载了ANSIColorLayout文件,并在我的log4j.properties文件中引用它。但是我收到以下错误:

log4j:WARN No such property [all] in org.apache.log4j.ConsoleAppender.
log4j:WARN No such property [reset] in org.apache.log4j.ConsoleAppender.
log4j:WARN No such property [stacktrace] in org.apache.log4j.ConsoleAppender.
log4j:WARN No such property [info] in org.apache.log4j.ConsoleAppender.
log4j:WARN No such property [error] in org.apache.log4j.ConsoleAppender.
log4j:WARN No such property [defaultcolor] in org.apache.log4j.ConsoleAppender.

我的log4j.properties文件如下所示:

log4j.rootLogger = DEBUG, CA, FA

log4j.appender.CA = org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout = balle.logging.ANSIColorLayout
log4j.appender.CA.layout.ConversionPattern=%-5p [%d{MM-dd-yyyy HH:mm:ss}] %c - %m%n
log4j.appender.CA.all=\u001B[1;37m log4j.appender.A1.fatal=\u001B[1;31m
log4j.appender.CA.error=\u001B[0;31m log4j.appender.A1.warn=\u001B[1;33m
log4j.appender.CA.info=\u001B[0;37m log4j.appender.A1.debug=\u001B[0;36m
log4j.appender.CA.reset=\u001B[1;37m
log4j.appender.CA.stacktrace=\u001B[0;31m
log4j.appender.CA.defaultcolor=\u001B[1;37m

我猜我应该使用自定义的ConsoleAppender?有人有什么想法吗?

谢谢

1个回答

8

如果链接失效,您可以在Google上搜索“ANSIColorLayout extends PatternLayout”,您会找到其他链接:) - TacticalCoder
这可能看起来是一个愚蠢的问题,但我该如何编辑log4j配置文件以使用Color类?我不确定我是否拥有它? - Dan_Dan_Man
@Dan_Dan_Man:这取决于您使用的log4j配置文件类型。我添加了一行允许更改stdout输出以使用彩色记录器的代码。 - TacticalCoder
我是说对于每个使用日志记录的类,我们都要导入org.apache.log4j.Logger。之后,我们创建一个LOG变量,并使用它来打印不同的日志消息。那么我们是否需要将该行添加到每个使用日志记录的类中? - Dan_Dan_Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接