zoukankan      html  css  js  c++  java
  • 自定义log4j2的PatternLayout参数

    1.添加类

    package com.yuanian.micro.config;
    
    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;
    
    /**
     * @author liujy
     * @date 2019/12/18 16:46
     * 增加serviceName到日志的pattern
     **/
    @Plugin(name = "ServiceNamePatternConverter", category = PatternConverter.CATEGORY)
    @ConverterKeys({"s", "serviceName"})
    public class ServiceNamePatternConverter extends LogEventPatternConverter {
        private  String SERVICENAME = "ms-job-console";
    
        private static final ServiceNamePatternConverter INSTANCE =
                new ServiceNamePatternConverter();
    
        public static ServiceNamePatternConverter newInstance(
                final String[] options) {
            return INSTANCE;
        }
    
        private ServiceNamePatternConverter() {
            super("serviceName", "serviceName");
        }
    
        @Override
        public void format(LogEvent logEvent, StringBuilder toAppendTo) {
            toAppendTo.append(SERVICENAME);
        }
    }
    
    1. 修改log4j2.yml文件,添加变量Configuration.packages为刚才创建类所在的包
    Configuration:
      status: warn
      packages: com.yuanian.micro.config
    

    3.在log4j2.yml中使用自定义的参数

    Configuration:
      status: warn
      packages: com.yuanian.micro.config
      Appenders:
        Console:  #输出到控制台
          name: CONSOLE
          target: SYSTEM_OUT
          ThresholdFilter:
            level: info
            onMatch: ACCEPT
            onMismatch: DENY
          PatternLayout:
            pattern: "%d %p %c [serviceName = %s] [Class = %c] [File = %F] [Line = %L] [Method = %M] [%t] %m%n"
    

    4.效果如下:

    2019-12-18 17:24:00,183 WARN com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder [serviceName = ms-job-console] [Class = com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder] [File = NacosPropertySourceBuilder.java] [Line = 86] [Method = loadNacosData] [main] Ignore the empty nacos configuration and get it based on dataId[ms-job-console] & group[DEFAULT_GROUP]
    

    5.不可以把参数定义重复,log4j2自定义的参数可以参考下面的地址 https://blog.csdn.net/guoquanyou/article/details/5689652


    本文参考链接:https://www.cnblogs.com/zr520/p/6406443.html

  • 相关阅读:
    ECharts 3 -- gauge表盘的配置项
    8 -- 深入使用Spring -- 1...4 属性占位符配置器
    8 -- 深入使用Spring -- 1...两种后处理器
    window.location.href
    8 -- 深入使用Spring -- 1...3 容器后处理器
    8 -- 深入使用Spring -- 1...2 Bean后处理器的用处
    8 -- 深入使用Spring -- 1...1Bean后处理器
    8 -- 深入使用Spring -- 0...
    Java NIO原理 图文分析及代码实现
    Java NIO系列教程(十二) Java NIO与IO
  • 原文地址:https://www.cnblogs.com/yechen2019/p/12061192.html
Copyright © 2011-2022 走看看