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().

时间: 2024-10-05 06:19:57

log4j2自定义输出线程环境信息的相关文章

SAP中自定义输出字段的ALV实例

这是运行的结果.对于我们的数据表我们需要字段可以自定义以ALV的格式输出. 特别注意点:wa_alv_field-fieldname = 'EMPID'.这个地方 EMPID一定要大写否则会在运行时报错. *&---------------------------------------------------------------------* *& Report  ZTBALV1 *& *&---------------------------------------

Lrc2srt精灵,增加自定义输出编码

2015.4.8 对中文支持有点问题,修改了一下,支持自定义输出编码! 修改了建议行末偏移,通常100到200最好了,人的反应时间! http://files.cnblogs.com/files/rovedog/Lrc2Srt.2015.4.12.zip

hadoop编程小技巧(7)---自定义输出文件格式以及输出到不同目录

代码测试环境:Hadoop2.4 应用场景:当需要定制输出数据格式时可以采用此技巧,包括定制输出数据的展现形式,输出路径,输出文件名称等. Hadoop内置的输出文件格式有: 1)FileOutputFormat<K,V>  常用的父类: 2)TextOutputFormat<K,V> 默认输出字符串输出格式: 3)SequenceFileOutputFormat<K,V> 序列化文件输出: 4)MultipleOutputs<K,V> 可以把输出数据输送到

IOS利用宏自定义输出(NSLog)

前言: 1)输出日志是会大量损耗系统性能 2)输出的信息很容易会被截取到,导致信息不安全. 所以我们会在发行版(Release)取消所有的Log.如果一行一行地去注释掉Log,显然不是一个明确的选择. 因此我们可以使用宏去自定义Log输出. 最简单的一个例子: #ifdef DEBUG # define GCLog(fmt, ...) NSLog((fmt), ##__VA_ARGS__); #else # define GCLog(...); #endif 使用方法: GCLog(@"sdf&

织梦图集图片在首页列表页调用并且自定义输出几张

不改动官方核心文件,在自定义方法文件里加入个方法来实现织梦图集图片在首页列表页调用并且自定义输出几张 效果展示 教程实现 打开 include\extend.func.php 在最下面加入这个方法 function Getimgurls($aid,$num=4) { global $dsql; $imgurls = $result = ''; $imgrow = $dsql->GetOne( "Select imgurls From `#@_addonimages` where aid='

记一次项目上线后Log4j2不输出日志的坑

公司项目采用了Log4j2来输出日志,在开发环境和测试环境下均可以输出日志,但在生成环境就没有日志输出.开始毫无头绪,后来通过不断的排查,终于解决了这个问题.在此记录下该问题的解决过程,便于后续查阅. 一.发现问题 p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; line-height: 125%; font-family: "Times New Roman"; font-size: 12.

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

实现ThreadFactory接口生成自定义的线程给Fork/Join框架

Fork/Join框架是Java7中最有趣的特征之一.它是Executor和ExecutorService接口的一个实现,允许你执行Callable和Runnable任务而不用管理这些执行线程.这个执行者面向执行能被拆分成更小部分的任务.主要组件如下: 一个特殊任务,实现ForkJoinTask类 两种操作,将任务划分成子任务的fork操作和等待这些子任务结束的join操作 一个算法,优化池中线程的使用的work-stealing算法.当一个任务正在等待它的子任务(结束)时,它的执行线程将执行其

PowerShell 自定义输出对象格式

PowerShell 的对象有很多类型,不同的类型有不同的输出格式.这些格式定义在$pshome 下面的dotnettypes.format.ps1xml里面.这个文件是有数字签名的,因此不能修改,但是我们可以依葫芦画瓢的复制粘贴内容再修改,这样子我们可以给自己定义的对象作出不同的输出效果来. 比如说,有个function,如下所示 Function Get-SystemInfo{ [cmdletbinding()] param( [string[]]$ComputerName ) begin{