Skip to main content

Log.e, Log.w…. Console를 제어 해보자

안드로이드 앱, 혹은 Java Application을 디버깅하기 위해서는 로그가 필수입니다.

잘 모르면 로그를 찍어보는게 가장 좋습니다.

보통은 다음과 같이 코드 사이에 쭉… 적어두었는데….

Log.e(MY_APP,"출력테스트"+aaa);

제품을 릴리즈 하거나, 배포 해야할 때는 불필요한 정보는 최대한 노출 시키지 않는게 좋겠죠… ?

public class myLog {
    // true 는 로그 노출 상태 , false는 로그를 출력하지 않음... 
    static final Boolean is_debug_log = true;


    /** Log Error **/
    public static final void e(String tag, String message) {
        if(is_debug_log) Log.e(tag, buildLogMsg(message));
    }

    /** Log Warning **/
    public static final void w(String tag, String message) {
        if(is_debug_log)Log.w(tag, buildLogMsg(message));
    }

    /** Log Information **/
    public static final void i(String tag, String message) {
        if(is_debug_log)Log.i(tag, buildLogMsg(message));
    }

    /** Log Debug **/
    public static final void d(String tag, String message) {
        if(is_debug_log)Log.d(tag, buildLogMsg(message));
    }

    /** Log Verbose **/
    public static final void v(String tag, String message) {
        if(is_debug_log)Log.v(tag, buildLogMsg(message));
    }

    //현제 클래스 스텍을 추적함
    public static String buildLogMsg(String message) {
        StackTraceElement ste = Thread.currentThread().getStackTrace()[4];
        StringBuilder sb = new StringBuilder();
        sb.append(ste.getFileName().replace(".java", ""));
        sb.append(".");
        sb.append(ste.getMethodName());
        sb.append(message);
        return sb generique de viagra.toString();
    }
}

is_debug_log 변수에 대해서는 BuildConfig.DEBUG를 이용하여 Android Studio에서 빌드를 선택하여

로그 출력 여부를 조정 할 수도 있습니다.

사용 방법은 어짜피 Static이기 때문에 다음 처럼 사용 할 수 있습니다.

myLog.i(TAG,"나는 로그로그");

더 좋은 아이디어 있으신분은 공유해주세엽… 뿅 -ㅅ-)/