使用带有log4j2消息的颜色

时间:2017-08-15 21:28:27

标签: bash logging log4j2

我有以下日志语句,我希望在日志中产生彩色线,但事实并非如此。日志设置为写入标准输出,还有其他东西正在编写彩色输出,工作正常,所以我知道它不是终端的问题。

LoggerFactory.getLogger("foo").info("no color \\033[1;35m COLOR \\033[0m no color")

这就是日志中显示的内容。

15:59:25 15:59:25 20:59:25,268:  INFO [MyClazz] no color \033[1;35m COLOR \033[0m no color

是否可以在日志消息中添加颜色?如果是这样的话?

1 个答案:

答案 0 :(得分:1)

我建议不要在日志中存储ANSI颜色转义序列/代码。至少你应该测试输出设备是否是TTY,并且仅在它是。

时写入“有色”输出

话虽如此,你的问题是逃避反斜杠\。您的输出应包含实际的\033字符(八进制),即\x1b(十六进制),  或27(十进制)。试试这样:

LoggerFactory.getLogger("foo").info("no color \033[1;35m COLOR \033[0m no color")