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();
        }
    }
    
    
  • 相关阅读:
    Android设备驱动安装
    昨晚摆乌龙了
    生活
    SQLSTATE=57019
    IBM项目六
    不吸烟了
    清明短假
    『ExtJS』使用中需要注意的一些事(持续更新)
    『Spring.Net』IoC 容器
    『Spring.Net』为什么使用?
  • 原文地址:https://www.cnblogs.com/lanhj/p/6640404.html
Copyright © 2011-2022 走看看