詳細検索

안드로이드 LogCat 태그에서 클래스 이름, 메서드 이름, 줄 번호를 표시하는 클래스들

아바타
글쓴이 furuyamah
3분 읽기
태그

안드로이드 LogCat 태그에서 클래스 이름, 메서드 이름, 줄 번호를 표시하는 클래스들
日本語에서 번역 • 원문 보기

디백커레이터가 있어도 단계를 실행할 수 있지만, 백로그 제거의 용이성을 포기할 수는 없습니다. 안드로이드의 경우, 표준 로그 클래스를 사용하면 그 목표를 달성할 수 있지만, 많은 사람들이 태그에 클래스 이름, 메서드 이름, 줄 번호가 있으면 만족할 것입니다!

생각해보니, 한 사람이 그걸 깨달았어.

[

안드로이드에서 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]

좋은 디버그 생활 되세요.

Related Articles