Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

easy-1

안드로이드 릴리즈 모드 로그 제거 본문

Android/Java

안드로이드 릴리즈 모드 로그 제거

easy-1 2021. 6. 10. 15:38

<개요>

개발을 하다보면 로그를 찍어 디버깅이나 정보를 확인하는 일이 많다.

하지만 이 로그를 그대로 남겨두면 배포된 앱을 사용자들이 로그를 확인이 가능하다.

이를 방지하기 위하여 디버그 모드에서는 로그를 확인할 수 있고,

릴리즈 모드에서는 로그를 확인할 수 없게 만들어준다.


<적용 방법>

1. Debug 모드 확인 함수 생성

public class Dlog {

    static final String TAG = "APP_NAME";

    /**
     * Log Level Error
     **/
    public static final void e(String message) {
        if (BuildConfig.DEBUG) Log.e(TAG, buildLogMsg(message));
    }

    /**
     * Log Level Warning
     **/
    public static final void w(String message) {
        if (BuildConfig.DEBUG) Log.w(TAG, buildLogMsg(message));
    }

    /**
     * Log Level Information
     **/
    public static final void i(String message) {
        if (BuildConfig.DEBUG) Log.i(TAG, buildLogMsg(message));
    }

    /**
     * Log Level Debug
     **/
    public static final void d(String message) {
        if (BuildConfig.DEBUG) Log.d(TAG, buildLogMsg(message));
    }

    /**
     * Log Level Verbose
     **/
    public static final void v(String message) {
        if (BuildConfig.DEBUG) Log.v(TAG, buildLogMsg(message));
    }

    public static String buildLogMsg(String message) {
        StackTraceElement ste = Thread.currentThread().getStackTrace()[4];
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        sb.append(ste.getFileName().replace(".java", ""));
        sb.append("::");
        sb.append(ste.getMethodName());
        sb.append("]");
        sb.append(message);
        return sb.toString();
    }


}

-> BuildConfig 클래스에서의 boolean DEBUG 값으로 판단

Comments