有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将信息添加到库的日志消息中?

我有一个使用库的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) 个答案

  1. # 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>