zoukankan      html  css  js  c++  java
  • Log4j2打印一行日志时返回本行日志的字符串

    import org.apache.logging.log4j.Level;
    import org.apache.logging.log4j.core.impl.Log4jLogEvent;
    import org.apache.logging.log4j.core.layout.PatternLayout;
    import org.apache.logging.log4j.message.SimpleMessage;
    
    /**
     * Created by lanhuajian on 2017/3/29.
     */
    public class StringLogger {
        private String loggerName;
        private static String FQCN = StringLogger.class.getName();
        private static final PatternLayout PATTERN_LAYOUT = PatternLayout.newBuilder()
            .withPattern("%d %t %-5p [%c]%L %m%n")
            .build();
    
        private StringLogger(String loggerName) {
            this.loggerName = loggerName;
        }
    
        public static StringLogger getLogger(Class loggerClass) {
            return new StringLogger(loggerClass.getName());
        }
    
        public static StringLogger getLogger(String loggerName) {
            return new StringLogger(loggerName);
        }
    
        public String info(String msg) {
            return PATTERN_LAYOUT.toSerializable(buildEvent(msg, Level.INFO));
        }
    
        public String warn(String msg) {
            return PATTERN_LAYOUT.toSerializable(buildEvent(msg, Level.WARN));
        }
    
        public String debug(String msg) {
            return PATTERN_LAYOUT.toSerializable(buildEvent(msg, Level.DEBUG));
        }
    
        public String error(String msg) {
            return PATTERN_LAYOUT.toSerializable(buildEvent(msg, Level.ERROR));
        }
    
        private Log4jLogEvent buildEvent(String msg, Level level) {
            return Log4jLogEvent.newBuilder()
                .setIncludeLocation(true)
                .setLoggerName(loggerName)
                .setLoggerFqcn(FQCN)
                .setLevel(level)
                .setMessage(new SimpleMessage(msg))
                .build();
        }
    }
    
    
  • 相关阅读:
    推荐引擎初探
    基于支持向量机的机械零件剩余寿命区间估计
    PCA与KPCA
    利用PCA进行故障监测
    Calling Matlab function from python: “initializer must be a rectangular nested sequence”
    pandas的resample重采样
    北斗网络时钟服务器的特点
    sntp时间服务器的介绍
    网络校时服务器
    电力同步时钟系统介绍
  • 原文地址:https://www.cnblogs.com/lanhj/p/6640404.html
Copyright © 2011-2022 走看看