안드로이드 앱 개발을 시작한지 2년즈음 됐을 때, 디버깅 로그를 추가 후 지우지 않고 그대로 배포하여 욕을 바가지로 먹고 피눈물을 쏟은 기억이 있다.
안드로이드 프로젝트 내 설정에서 막는 방법도 있지만, 간혹 로그가 그대로 노출 되는 경우도 있는 것 같다.
테스트 로그가 그대로 상용에 배포되는 실수를 반복하지 않고자 따로 Log 클래스를 만들어 상용배포시 boolean값만 변경하면 디버깅 내용이 나오지 않게 class를 만들었다.
/** * Application Log * * @author dada * */ public class Looger { private final static String TAG = "Logger"; private static Looger logger = null; private boolean debugAble = true; // true: 디버깅 가능, false : 디버깅 되지 않음 private Looger(){} public static Looger getInstance(){ if (logger == null) { logger = new Looger(); } logger.debugAble = true; return logger; } public static Looger getInstance(boolean debuggerAble){ if (logger == null) { logger = new Looger(); } logger.debugAble = debuggerAble; return logger; } public void e(String message){ if (logger != null && debugAble == true){ Log.e(TAG, message); } } public void d(String message){ if (logger != null && debugAble == true){ Log.d(TAG, message); } } public void v(String message){ if (logger != null && debugAble == true){ Log.v(TAG, message); } } public void i(String message){ if (logger != null && debugAble == true){ Log.i(TAG, message); } } public void w(String message){ if (logger != null && debugAble == true){ Log.w(TAG, message); } } public void e(String TAG, String message){ if (logger != null && debugAble == true){ Log.e(TAG, message); } } public void d(String TAG, String message){ if (logger != null && debugAble == true){ Log.d(TAG, message); } } public void v(String TAG, String message){ if (logger != null && debugAble == true){ Log.v(TAG, message); } } public void i(String TAG, String message){ if (logger != null && debugAble == true){ Log.i(TAG, message); } } public void w(String TAG, String message){ if (logger != null && debugAble == true){ Log.w(TAG, message); } } }
사용방법
Looger.getInstance().e("===================결과값 확인===================");
따로 어려운 코드가 들어 간것은 아니지만 매번 새로 만들려면 귀찮으니 기록으로 남긴다.