log4j2自定义输出线程环境信息

本文详细介绍了在配置日志输出格式时如何利用内置规则与ThreadContext类进行自定义信息输出,通过示例代码展示了如何使用ThreadContext类的push、put和clearMap方法来管理线程上下文环境,特别强调了在patternLayout中如何输出线程ID,并提供了清除线程上下文数据的方法。

  在配置日志的输出格式的时候,我们可以按照内置的规则输出日志,但是有时候需要及时输出我们自定义的信息,这时需要借助ThreadContext类。

  ThreadContext类类似于MDC和NDC,它是一种线程上下文环境,它有两种方法可以实现加入数据到线程环境中,一种是push(param),一种是put(key , value)。第一种方法是以一种堆栈的方式存放信息的,在存入信息后,要以pop()方法将信息弹出,以存入下一个信息,示例代码如下:

  

1 ThreadContext.push("abc");
2     doSomething;
3 ThreadContext.pop();

   第二种方法put(key,value)是可以在pattern中取得的,获取方法为"%X{key}"。示例如下:

  

1 ThreadContext.push("TID",Thread.currentThread().getId());
2     doSomething;
3 ThreadContext.clearMap();

以上方法可以在patternLayout中输出线程的id,只需要在配置文件中配置"%X{TID}" 即可。

清除线程上下文环境中的数据可以用clearMap()清除put方法存入的数据,清除push方法的数据可用clearStack();如果要同时清除map和stack可用clearAll().

转载于:https://www.cnblogs.com/bigbang92/p/log4j2-threadContext.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值