• java LogWriter


    package org.rx.core;
    
    import lombok.Getter;
    import lombok.Setter;
    import lombok.SneakyThrows;
    import lombok.extern.slf4j.Slf4j;
    import org.jetbrains.annotations.NotNull;
    
    import java.io.StringWriter;
    
    import static org.rx.core.Contract.require;
    
    @Slf4j
    public class LogWriter extends StringWriter {
        private org.slf4j.Logger logRef;
        @Getter
        @Setter
        private String prefix;
    
        public LogWriter() {
            this(log);
        }
    
        public LogWriter(org.slf4j.Logger log) {
            require(log);
    
            this.logRef = log;
        }
    
        @Override
        public void write(@NotNull String str) {
            super.write(prefix);
            super.write(" ");
            super.write(str);
        }
    
        @Override
        public void write(String str, int off, int len) {
            write(str.substring(off, off + len));
        }
    
        public LogWriter writeLine() {
            super.write(System.lineSeparator());
            return this;
        }
    
        public LogWriter info(Object obj) {
            write(String.valueOf(obj));
            writeLine();
            return this;
        }
    
        public LogWriter info(String format, Object... args) {
            write(String.format(format.replace("{}", "%s"), args));
            writeLine();
            return this;
        }
    
        public LogWriter infoAndFlush(Object obj) {
            info(obj).flush();
            return this;
        }
    
        public LogWriter infoAndFlush(String format, Object... args) {
            info(format, args).flush();
            return this;
        }
    
        public LogWriter error(String msg, Throwable e) {
            logRef.error(msg, e);
            return this;
        }
    
        @Override
        public void flush() {
            super.flush();
            StringBuffer buffer = super.getBuffer();
            logRef.info(buffer.toString());
            buffer.setLength(0);
        }
    
        @SneakyThrows
        @Override
        public void close() {
            this.flush();
            super.close();
        }
    }
  • 相关阅读:
    13---Net基础加强
    12---Net基础加强
    11---Net基础加强
    10---Net基础加强
    09---Net基础加强
    08---Net基础加强
    07---Net基础加强
    06---Net基础加强
    05---Net基础加强
    04---Net基础加强
  • 原文地址:https://www.cnblogs.com/Googler/p/12010869.html
Copyright © 2020-2023  润新知