拦截或包装log4j根记录器或appender

时间:2016-10-30 16:48:01

标签: java logging log4j

我想在任何事件记录的所有消息中注入一条信息,包括第三方代码。原因是,在我们面向Web服务的应用程序中,请求带有唯一ID,我希望将这些唯一ID附加到处理请求时发生的所有日志消息,以帮助以后进行分析。我已经使用ThreadLocal<>跟踪“当前请求”了技术,所以我有能力从任何地方获取“当前请求”。

为此,我想配置log4j,以便在它们到达根记录器(或appender?)之前将requestID注入到消息中。我知道我可以创建一个全新的Appender来实现append()并对输出做任何想做的事情,但这不是我要求的。我希望输出最终转到启动时配置的任何appender,但附加了附加信息。

我正在使用log4j 1.x,但是如果转移到log4j 2.x或使用slf4j使这变得更容易,我会考虑它。

0 个答案:

没有答案