我在log4j中使用Kafka附加程序。我想在不同的线程中有不同的消息键(根据request-id ...)。
我已经在Java代码中设置了线程上下文,例如:
ThreadContext.put(“ key”,zmqBrokerAddress);
然后我根据文档更改了配置文件。
<Kafka name="Kafka" topic="${env:kafka.topic.infrastructure}" key = "${ctx:key}">
<PatternLayout pattern="%d{dd MMM yyyy HH:mm:ss,SSS} %message ${ctx:key}"/>
<Property name="bootstrap.servers">${env:kafka.server}</Property>
</Kafka>
...
当我在使用者中读取一条消息时,我将密钥作为消息的一部分(可能是某些东西),但是密钥字段的值为“ $ {ctx:key}”