zoukankan      html  css  js  c++  java
  • log4j2自定义输出线程环境信息

      在配置日志的输出格式的时候,我们可以按照内置的规则输出日志,但是有时候需要及时输出我们自定义的信息,这时需要借助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().

  • 相关阅读:
    分西瓜(dfs)
    括号配对(栈)
    gcd表(欧几里得定理)
    整数性质(拓展欧几里得算法)
    欧几里得算法(求最大公约数)拓展欧几里得算法
    删除元素(二分查找)
    括号配对问题
    公司组织看电影(综合)
    取余数(%)
    幼儿园分苹果(/)
  • 原文地址:https://www.cnblogs.com/bigbang92/p/log4j2-threadContext.html
Copyright © 2011-2022 走看看