自动标记slf4j参数化变量?

时间:2013-03-25 23:13:58

标签: java logging slf4j

我正在使用slf4j。我有很多看起来像这样的日志语句;

LOG.debug("I like {} and {}", new Object[] { "foo", "bar" });

执行此日志语句时,我会看到如下所示的日志;

I like foo and bar

正如所料。但是,我希望日志消息参数具有其他格式,以使日志解析器更容易。一个理想的日志消息,字面上看起来像这样;

I like [foo] and [bar]

显然我可以将文字日志语句更新为I like [{}] and [{}],但这是一个很大的变化,使得日志语句看起来非常混乱,并且对于未来不是很灵活。

在保持slf4j的同时,有人会建议更快的解决方案吗?我正在使用的实现是logback-classic来做实际的lgoging。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用Logback,可能可以构建自定义appender / encoder / layout / converter。在Logback中,Appender接收LoggingEvent,它通常委托给编码器的编码器,该编码器用于构造消息的布局。查看源代码,了解哪个部分是您进行自定义处理的最佳位置。