디백커레이터가 있어도 단계를 실행할 수 있지만, 백로그 제거의 용이성을 포기할 수는 없습니다. 안드로이드의 경우, 표준 로그 클래스를 사용하면 그 목표를 달성할 수 있지만, 많은 사람들이 태그에 클래스 이름, 메서드 이름, 줄 번호가 있으면 만족할 것입니다!
생각해보니, 한 사람이 그걸 깨달았어.
[
안드로이드에서 LogCat 태그에서 "클래스 이름.메서드 이름: 라인 번호"를 어떻게 표시하나요?
](http://kinsentansa.blogspot.jp/2012/06/androidlogcattag.html)
왠지 이걸 분류해서 사용할 수 있게 하려고 했어요.
[코드 lang="java" light="true"] 패키지 jp.fuga.hoge.android.app;
java.util.regex.Pattern을 import; jp.fuga.hoge.android.app.BuildConfig를 import; android.util.Log를 import;
/** * 로그 출력 클래스.
* 로그를 출력할 때는 항상 이 클래스를 사용하세요.
* 출시 시점에는 백로그가 인쇄되지 않습니다. * */ 공공 클래스 L {
/**
* 디버깅을 위한 로그를 출력합니다. 프로덕션 릴리스 중에는 출력되지 않습니다.
*
* 메시지로 @param 메시지
*/
public static void d(String msg) {
만약 (! BuildConfig.DEBUG) 반환한다면;
Log.d(getTag(), msg);
}
/**
* 오류 로그 출력. <br>
* 포획 중이나 예상치 못한 동작이 있을 때 로그를 출력하는 데 사용됨. <br>
* 이 로그는 생산 릴리스 중 발생하는 오류를 분석하기 위한 출력으로 가정됩니다.
*
* 메시지로 @param 메시지
*/
public static void e(String msg) {
Log.e(getTag(), msg);
}
/**
* 같은 책.
*
* @param 메시지
* @param t
*/
public static void e(String msg, Throwable t) {
Log.e(getTag(), msg, t);
}
/**
* 태그 생성
*
* @return className#methodName:line
*/
private static 문자열 getTag() {
최종 StackTraceElement trace = Thread.currentThread().getStackTrace()[4];
최종 문자열 cla = trace.getClassName();
패턴 패턴 = Pattern.compile("[\\.] +");
최종 String[] splitedStr = pattern.split(cla);
최종 문자열 simpleClass = splitedStr[splitedStr.length - 1];
최종 문자열 mthd = trace.getMethodName();
최종 정수형 행 = trace.getLineNumber();
최종 문자열 태그 = simpleClass + "#" + mthd + ":" + 행;
태그를 반환;
}
}
[/코드]
중요한 점은 BuildConfig가 릴리스 빌드가 만들어질 때 디백로그가 출력되지 않도록 제어한다는 것입니다.
사용법은 다음과 같습니다
[코드 lang="java" light="true"] L.d("Debacklog"); [/code]
좋은 디버그 생활 되세요.