我正在尝试将标记(字符串)附加到log4j2处的每条日志消息,并且该消息将传递给socket serializedlayout以进行输出。那么可以拦截日志消息并添加一些标签(字符串)吗?
下面是log4j2.xml
<Socket name="LOGSTASH" host="192.168.0.1" port="4567" immediateFlush="true" >
<SerializedLayout />
</Socket>
以下是致电
private static final Logger log = LogManager.getLogger(aClazz.class);
private void aMethod(){
log.error("ooops");
}
以下是原点输出
method : aMethod()
class : aClazz
level : error
message : ooops
trace.........
以下是预期输出
method : aMethod()
class : aClazz
level : error
message : [Some String] ooops
trace.........
答案 0 :(得分:0)
因为您使用的是SerializedLayout,所以无法利用将ThreadContext值注入输出字符串的常规机制。但是,您可以将SocketAppender包装在RewriteAppender中并创建自定义重写策略以修改您希望的消息,包括通过插入ThreadContext值来修改消息。