로그 찍은 Class 이름, method 이름, 라인 수 를 표시해서 찾기 쉽게 로그를 찍는 로직임.

public class DLog {
    // Todo : 배포시 false 변경
    public static boolean D = true;

    private static final int LOG_V = 0;
    private static final int LOG_D = 1;
    private static final int LOG_I = 2;
    private static final int LOG_W = 3;
    private static final int LOG_E = 4;

    private static void log(int type, Exception e, String message) {
        if (D) {
            StackTraceElement l = e.getStackTrace()[0];

            String fullClassName = l.getClassName();
            String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
            String methodName = l.getMethodName();
            int lineNumber = l.getLineNumber();

            String tag = className + "." + methodName + "():" + lineNumber;

            switch (type) {
                case LOG_V: Log.v("⚪️ " + tag, message); break;
                case LOG_D: Log.d("🔵 " + tag, message); break;
                case LOG_I: Log.i("🟢 " + tag, message); break;
                case LOG_W: Log.w("🟠 " + tag, message); break;
                case LOG_E: Log.e("🔴 " + tag, message); break;
            }
        }
    }

    public static void v(Exception e, String message) {
        log( LOG_V, e, message);
    }
    public static void d(Exception e, String message) {
        log(LOG_D, e, message);
    }
    public static void i(Exception e, String message) {
        log(LOG_I, e, message);
    }
    public static void w(Exception e, String message) {
        log(LOG_W, e, message);
    }
    public static void e(Exception e, String message) {
        log(LOG_E, e, message);
    }
}

 

 

 

// 사용방법
DLog.i(new Exception(), e.getMessage());

// 결과
//     클래스명          함수명         라인수:     로그 데이터
I/🟢 WebViewBridge.patternRegister():2021: {"pin_code":"YzU1UkxoOGxRbUdZRFFQQThDeEppUT09Ojp1dHRlcmR2em17YWNhaHR2","userId":"M000073927"}

+ Recent posts