首先收藏一下log4j2的官网:http://logging.apache.org/log4j/2.x/manual/plugins.html#TypeConverters

对于这种需要,可以使用log4j2插件机制。

具体做法:

package com.hotusm.ticket.interceptor;

import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.pattern.ConverterKeys;
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
import org.apache.logging.log4j.core.pattern.PatternConverter; /**
* Created by hotusm 2017/2/16.
*/
@Plugin(name = "LogIdPatternConverter", category = PatternConverter.CATEGORY)
@ConverterKeys({ "y", "logId" })
public class LogIdPatternConverter extends LogEventPatternConverter { private static final LogIdPatternConverter INSTANCE =
new LogIdPatternConverter(); public static LogIdPatternConverter newInstance(
final String[] options) {
return INSTANCE;
} private LogIdPatternConverter(){
super("LogId", "logId");
} @Override
public void format(LogEvent event, StringBuilder toAppendTo) {
toAppendTo.append(Math.random());
} }

定义一个类继承LogEventPatternConverter

1.定义的这个类必须提供一个newInstance方法,参数是final String[] options,返回值为定义的类(对于是否是单例没有明确的要求)

2.提供一个私有的构造函数,调用父类的构造函数,函数需要提供两个参数 第一个参数是转换器的名称,第二个是css样式,

3.还有主要的工作format,这里有两个参数,LogEvent是系统已经存在的一些可选数据,StringBuilder 表示的是最终的输出字符流。一般都是将自定义的
append进去

4.注解:Plugin 表示的是这是一个插件,name是名称,category为PatternConverter.CATEGORY(目前插件只有这个选择)
ConverterKeys表示的就是自定义的参数,可以多个

定义好了之后,然后在log4j2的配置文件中设置

<configuration status="WARN" packages="com.hotusm.ticket.interceptor">

打印格式:

<Property name="patternStyle">lodId:%-10y %d{HH:mm:ss.SSS}

最后就ok了。下面是输出:

  

Log4j2 中format增加自定义的参数的更多相关文章

  1. 详解如何在Laravel中增加自定义全局函数

    http://www.php.cn/php-weizijiaocheng-383928.html 如何在Laravel中增加自定义全局函数?在我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么 ...

  2. 在项目中增加自定义icon图标

    以MUI框架为例,内容来自于MUI官网. mui如何增加自定义icon图标 mui框架遵循极简原则,在icon图标集上也是如此,mui仅集成了原生系统中最常用的图标:其次,mui中的图标并不是图片,而 ...

  3. java web项目中后台控制层对参数进行自定义验证 类 Pattern

    Pattern pattern = Pattern.compile("/^([1-9]\d+元*|[0]{0,1})$/");//将给定的正则表达式编译到模式中 if(!" ...

  4. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox增加自定义按钮的方法

    在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButton ...

  5. [转]通过继承ConfigurationSection,在web.config中增加自定义配置

    本文转自:http://www.blue1000.com/bkhtml/2008-02/55810.htm 前几天写了一篇使用IConfigurationSectionHandler在web.conf ...

  6. 在WPS绿色版中增加自定义皮肤

    在WPS绿色版中增加自定义皮肤小俊的博客:http://xiaojun911.com/WPS绿色版:http://xiaojun911.com/xiazai/469.html小俊精简的WPS2016 ...

  7. 在Echarts 柱形图的单击事件中写入自定义的参数

    标签: 逻辑:(点击柱形图的某个实例(注意:三个柱子表示的是一个实例)) 参考链接:http://echarts.baidu.com/doc/example/event.html { name: ‘c ...

  8. iview 在Table组件中使用switch组件并自定义内容和增加自定义事件

    注意: 使用render函数. 效果: 添加自定义文字: 1. 2. 上面的两种方法效果都是一样的: 增加自定义事件: 结果: 自信是进步的源泉. 继续加油. ^_^

  9. Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归

    此处将抽象和结构.自定义函数.参数的使用.作用域.递归放在一起学习,看起来很怪是不是? 但实际上这几者之间是有紧密联系的,不然Python基础教程(第三版)的作者为什么会把它们放在一起哪?手动滑稽 好 ...

随机推荐

  1. mui 列表项左右滑删除功能升级(仿微信左滑 点击删除后出现确认删除)

    mui 列表项左右滑删除功能升级(仿微信左滑 点击删除后出现确认删除) 2018-06-19更新显示样式

  2. shell编程学习笔记(一):编写我的第一段代码

    目前在学习Shell编程,我会把我的学习笔记记录在这里.大神可以直接略过~ 嗯,第一段代码,肯定是要输出Hello World了~ 以下蓝色字体的内容为linux命令,红色字体的内容为输出的内容: # ...

  3. RHEL磁盘修复

    0. 1.基础工具:e2label /device/xxx [new label name]   显示/设定设备的label名称 2.e2fsck 修复工具,用-b 指定备用的superblock位置 ...

  4. angularjs图片上传和预览 - ng-file-upload

    ng-file-upload ajax上传文件 官方demo地址 安装 bower install ng-file-upload-shim --save(for non html5 suppport) ...

  5. ShardedJedisPool的使用

    package com.test; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Jedi ...

  6. Swift udp实现根据端口号监听广播数据(利用GCDAsyncUdpSocket实现)

    有个小需求,app需要监听pc广播的数据: 代码实现思路: 使用三方库:CocoaAsyncSocket 1.开启udp监听: udpSocket.beginReceiving() 2.读取udp的数 ...

  7. file命令与magic file【转】

    Linux基础——file命令与magic file [日期:2013-06-03] 来源:Linux社区  作者:sin90lzc [字体:大 中 小]   //本文基于CentOS6.3 dist ...

  8. android 开发小工具收集

    http://blog.csdn.net/tikitoo/article/details/51089422

  9. 在 Redis 上实现的分布式锁

    由于近排很忙,忙各种事情,还有工作上的项目,已经超过一个月没写博客了,确实有点惭愧啊,没能每天或者至少每周坚持写一篇博客.这一个月里面接触到很多新知识,同时也遇到很多技术上的难点,在这我将对每一个有用 ...

  10. lua -- 系统提示框

    -- -- Author: chentong -- Date: 2014-3-24 -- 系统提示: -- 先做个简单的,在中上位置出现提示,逐渐消失,如果有新提示,则直接删除旧提示. -- 规则: ...