LogUtil.java 源代码


package com.x8zs.plugin.utils;

import android.text.TextUtils;
import android.util.Log;

public class LogUtil {
    public static boolean allowD = true;
    public static boolean allowE = true;
    public static boolean allowI = true;
    public static boolean allowV = true;
    public static boolean allowW = true;
    public static boolean allowWtf = true;
    public static CustomLogger customLogger = null;
    public static String customTagPrefix = "";

    public interface CustomLogger {
        void d(String str, String str2);

        void d(String str, String str2, Throwable th);

        void e(String str, String str2);

        void e(String str, String str2, Throwable th);

        void i(String str, String str2);

        void i(String str, String str2, Throwable th);

        void v(String str, String str2);

        void v(String str, String str2, Throwable th);

        void w(String str, String str2);

        void w(String str, String str2, Throwable th);

        void w(String str, Throwable th);

        void wtf(String str, String str2);

        void wtf(String str, String str2, Throwable th);

        void wtf(String str, Throwable th);
    }

    private LogUtil() {
    }

    public static void d(String str) {
        if (allowD) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.d(generateTag, str);
            } else {
                Log.d(generateTag, str);
            }
        }
    }

    public static void e(String str, Class<?> cls, String str2) {
        if (allowE) {
            Log.e(str, cls.getCanonicalName() + ": " + str2);
        }
    }

    private static String generateTag(StackTraceElement stackTraceElement) {
        String className = stackTraceElement.getClassName();
        String format = String.format("%s.%s(L:%d)", className.substring(className.lastIndexOf(".") + 1), stackTraceElement.getMethodName(), Integer.valueOf(stackTraceElement.getLineNumber()));
        if (!TextUtils.isEmpty(customTagPrefix)) {
            return customTagPrefix + ":" + format;
        }
        return format;
    }

    public static StackTraceElement getCallerStackTraceElement() {
        return Thread.currentThread().getStackTrace()[4];
    }

    public static void i(String str, Class<?> cls, String str2) {
        if (allowE) {
            Log.i(str, cls.getCanonicalName() + ": " + str2);
        }
    }

    public static void v(String str) {
        if (allowV) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.v(generateTag, str);
            } else {
                Log.v(generateTag, str);
            }
        }
    }

    public static void w(String str) {
        if (allowW) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.w(generateTag, str);
            } else {
                Log.w(generateTag, str);
            }
        }
    }

    public static void wtf(String str) {
        if (allowWtf) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.wtf(generateTag, str);
            } else {
                Log.wtf(generateTag, str);
            }
        }
    }

    public static void e(String str) {
        if (allowE) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.e(generateTag, str);
            } else {
                Log.e(generateTag, str);
            }
        }
    }

    public static void i(String str) {
        if (allowI) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.i(generateTag, str);
            } else {
                Log.i(generateTag, str);
            }
        }
    }

    public static void d(String str, Throwable th) {
        if (allowD) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.d(generateTag, str, th);
            } else {
                Log.d(generateTag, str, th);
            }
        }
    }

    public static void v(String str, Throwable th) {
        if (allowV) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.v(generateTag, str, th);
            } else {
                Log.v(generateTag, str, th);
            }
        }
    }

    public static void w(String str, Throwable th) {
        if (allowW) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.w(generateTag, str, th);
            } else {
                Log.w(generateTag, str, th);
            }
        }
    }

    public static void wtf(String str, Throwable th) {
        if (allowWtf) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.wtf(generateTag, str, th);
            } else {
                Log.wtf(generateTag, str, th);
            }
        }
    }

    public static void e(String str, Throwable th) {
        if (allowE) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.e(generateTag, str, th);
            } else {
                Log.e(generateTag, str, th);
            }
        }
    }

    public static void i(String str, Throwable th) {
        if (allowI) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.i(generateTag, str, th);
            } else {
                Log.i(generateTag, str, th);
            }
        }
    }

    public static void d(String str, Class<?> cls, String str2) {
        if (allowE) {
            Log.d(str, cls.getCanonicalName() + ": " + str2);
        }
    }

    public static void w(Throwable th) {
        if (allowW) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.w(generateTag, th);
            } else {
                Log.w(generateTag, th);
            }
        }
    }

    public static void wtf(Throwable th) {
        if (allowWtf) {
            String generateTag = generateTag(getCallerStackTraceElement());
            CustomLogger customLogger2 = customLogger;
            if (customLogger2 != null) {
                customLogger2.wtf(generateTag, th);
            } else {
                Log.wtf(generateTag, th);
            }
        }
    }
}