如何解决Log4j2将值附加到模式
我有一个拦截器,该拦截器可获取有关已发出请求的一些信息,我想将该信息附加到Log4j2模式中。
{"foo": "bar"}
然后在拦截器中找到“ requestParam”:“ word”和“ remoteAddress”:“ 0.0.0.0”
我希望最终结果为{"foo": "bar","requestParam" : "word","remoteAddress" : "0.0.0.0"}
但是下一个被拦截的请求可能具有相同的数据,除了另外一个附加字段。
所以看起来像这样{"foo": "bar","remoteAddress" : "0.0.0.0","key": "value"}
我尝试使用ScriptPatternSelector,但它不允许您追加,而只能在不同模式之间进行选择。
我正在尝试在log4j2中实现吗?
解决方法
在拦截器中,使用ThreadContext.put(key,value)添加数据。然后,您可以在图案布局中指定打印所有ThreadContext项目,或者使用%X转换器或MDC查找-$ {ctx:key}指定要打印的项目。然后,您的拦截器应在请求结束时调用ThreadContext.clearMap(),以使数据不会渗入下一个请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。