LoggerDefaultInit.java 1.27 KB

package com.wd.base.log;

/**
 * @author yangchenggong
 * @date 2022/7/4 15:18
 */
public class LoggerDefaultInit {
    private static volatile LoggerDefaultInit s = null;

    private LoggerDefaultInit() {
        System.out.println("构造方法");
    }

    public static LoggerDefaultInit getInstance() {
        if (s == null) {
            // 这里可能被其他线程插入,并抢先实例化Singleton
            synchronized (LoggerDefaultInit.class) {
                if (s == null) {
                    try {
                        // 将问题极端化
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                    }
                    s = new LoggerDefaultInit();
                }
            }
        }
        return s;
    }

    /**
     * 是否显示 Log
     * 
     * @param isShow 编译debug展示
     */
    public void init(boolean isShow) {
        FormatStrategy formatStrategy =
            PrettyFormatStrategy.newBuilder().showThreadInfo(false).methodCount(1).tag("RMLog").build();

        Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy) {
            @Override
            public boolean isLoggable(int priority, String tag) {
                return isShow;
            }
        });
    }
}