如何向库的日志消息添加信息?

时间:2016-09-01 15:26:28

标签: java logging dependencies static-libraries

我有Servlet使用图书馆。 servlet和库都通过log4j记录事物 servlet是多线程的,每个请求都有一个唯一的“请求ID”,如123456
当servlet记录内容时,它总是在日志消息的开头附加请求ID,但库不会。 像这样:
Servlet - [123456] I'm going to do stuff now and call the library LibraryX - I do library stuff here

如何在不修改库的情况下将此请求ID附加到每个库消息日志? 我想要的是:
Servlet - [123456] I'm going to do stuff now and call the library LibraryX - [123456] I do library stuff here

1 个答案:

答案 0 :(得分:1)

您可以使用Mapped Diagnostic Context
只需将您的requestId放入上下文中:

MDC.put("requestId", requestId);

配置您的jog4j.xml

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d - [%X{requestId}] - %m%n" />
    </layout>
</appender>