본문 바로가기
프로그래밍/안드로이드

[안드로이드] 디버그 출력 프린트 클래스 전체소스

by 천상IT 2022. 1. 6.
반응형

안드로이드 개발시 디버그 프린트는 어떤 것을 이용하시나요?

보통은 android.util.Log를 사용하거나 System.out.println을 사용하실텐데요.

안드로이드 개발시 이것저것 디버그용으로 사용하다보면 나중에 앱출시에 디버그용 출력을 제거해야 할때 매우 귀찮습니다. 제가 만들어놓은 디버그 프린터용 클래스를 이용해보세요. 나중에 출시시에는 

private static final boolean DEBUG_PRINT_FLG = false; 로 출력은 off로 설정하시면됩니다.

 

사용법도 간단하니 아래 소스를 참고해주세요.

 

디버그출력시 로그레벨을 지정가능합니다.

//로그레벨
public static final int LOG_INFO = 1;
public static final int LOG_WARN = 2;
public static final int LOG_ERROR = 3;

사용은 아래와 같이 사용해주세요.

DebugPrint.debugLog("TAG", "message", DebugPrint.LOG_INFO);

 

 

전체 소스입니다. 

import android.util.Log;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Timestamp;

/**
 *  안드로이드 라이브러리 디버그프린트
 */
public class DebugPrint {

    //디버그 출력 플러그
    private static final boolean DEBUG_PRINT_FLG = true;

    //로그레벨
    public static final int LOG_INFO = 1;
    public static final int LOG_WARN = 2;
    public static final int LOG_ERROR = 3;

    //디버그출력(Console)
    public static void debugConsolePrint(String msg){
        if(DEBUG_PRINT_FLG){
            System.out.println("[DEBUG] "+msg);
            DebugPrint.debugLog("Console", msg, LOG_INFO);
        }
    }
    //로그출력
    public static void debugLog(String tag, String msg, int LogLevel){
        if(DEBUG_PRINT_FLG){
           System.out.println("[DUBUG] "+tag+":"+msg);
            msg = "[DUBUG]" + msg;
            switch(LogLevel)
            {
                case LOG_INFO:
                    Log.i(tag, msg);
                    break;
                case LOG_WARN:
                    Log.w(tag, msg);
                    break;
                case LOG_ERROR:
                    Log.e(tag, msg);
                    break;
            }
        }
    }

    //익셉션로그출력
    public static void ExceptionLog(String tag, Exception e){
        StringWriter sw = new StringWriter();
        e.printStackTrace(new PrintWriter(sw));
        String exceptionAsStrting = sw.toString();
        if(DEBUG_PRINT_FLG){
            Log.e(tag, exceptionAsStrting);
        }
    }

    public static void print(String msg) {
        if (DEBUG_PRINT_FLG) {
            Timestamp ts = new Timestamp(System.currentTimeMillis());
            System.err.print(ts.toString()+" : "+msg);
        }
    }

    public static void println(String msg) {
        if (DEBUG_PRINT_FLG) {
            Timestamp ts = new Timestamp(System.currentTimeMillis());
            System.err.println(ts.toString()+" : "+msg);
        }
    }

    public static void queryPrint(String msg) {
        if (DEBUG_PRINT_FLG) {
            DebugPrint.println("\n*** QUERY START ***\n");
            System.err.println(msg);
            DebugPrint.println("*** QUERY END ***\n");
        }
    }

    public static void exceptionPrint(String msg , Exception e) {
        Timestamp ts = new Timestamp(System.currentTimeMillis());
        System.err.println("*** EXCEPTION {"+ts.toString()+"} : "+msg);
        DebugPrint.ExceptionLog(CommDefine.DEBUG_TAG, e);
    }
}

 

그럼 개발시 잘 이용해주세요. 감사합니다.

 

반응형

댓글