如何使用 SLF4J 和 Log4j 在日志消息中包含标记

ilo*_*ner 2 java log4j slf4j log4j2

我通过以下方式在 SLF4J 和 Log4j 中使用标记

final Marker marker = MarkerFactory.getMarker("boom");
logger.info(marker, "BLAH BLAH: {}", stuff);
Run Code Online (Sandbox Code Playgroud)

如何在输出的日志消息中包含标记。例如,我希望上面的代码输出如下内容:

INFO - (boom): BLAH BLAH: something
Run Code Online (Sandbox Code Playgroud)

目前标记未显示

INFO: BLAH BLAH: something
Run Code Online (Sandbox Code Playgroud)

我一直在尝试找到一种在 log4j.properties 中配置此功能的方法,但无法找到有关显示标记的任何信息。

wil*_*ilx 5

这取决于您尝试用作日志记录后端的 log4j 版本。经典的Log4j 1.2.x不支持Markers,但似乎通过SLF4J支持MDC。Log4j 2.x 似乎确实原生支持标记。%marker您可以在布局格式说明符中使用。