Android(Java)
[Java] Log 가독성있게 찍기
삽질중
2024. 4. 8. 10:15
로그 찍은 Class 이름, method 이름, 라인 수 를 표시해서 찾기 쉽게 로그를 찍는 로직임.
public class DLog {
// Todo : 배포시 false 변경
public static boolean D = true;
private static final int LOG_V = 0;
private static final int LOG_D = 1;
private static final int LOG_I = 2;
private static final int LOG_W = 3;
private static final int LOG_E = 4;
private static void log(int type, Exception e, String message) {
if (D) {
StackTraceElement l = e.getStackTrace()[0];
String fullClassName = l.getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
String methodName = l.getMethodName();
int lineNumber = l.getLineNumber();
String tag = className + "." + methodName + "():" + lineNumber;
switch (type) {
case LOG_V: Log.v("⚪️ " + tag, message); break;
case LOG_D: Log.d("🔵 " + tag, message); break;
case LOG_I: Log.i("🟢 " + tag, message); break;
case LOG_W: Log.w("🟠 " + tag, message); break;
case LOG_E: Log.e("🔴 " + tag, message); break;
}
}
}
public static void v(Exception e, String message) {
log( LOG_V, e, message);
}
public static void d(Exception e, String message) {
log(LOG_D, e, message);
}
public static void i(Exception e, String message) {
log(LOG_I, e, message);
}
public static void w(Exception e, String message) {
log(LOG_W, e, message);
}
public static void e(Exception e, String message) {
log(LOG_E, e, message);
}
}
// 사용방법
DLog.i(new Exception(), e.getMessage());
// 결과
// 클래스명 함수명 라인수: 로그 데이터
I/🟢 WebViewBridge.patternRegister():2021: {"pin_code":"YzU1UkxoOGxRbUdZRFFQQThDeEppUT09Ojp1dHRlcmR2em17YWNhaHR2","userId":"M000073927"}