본문 바로가기
Android/Dev

DevLog:::개발중인 테스트기기에서만 Log를 확인할 수 있게 하기

by featherwing 2021. 8. 31.
반응형

코드를 짜는 개발중에는 좀 더 상세한 파악을 위해서 작동하는 코드의 중간중간마다

 

아래와 같이 Log를 붙여놓아야 문제가 발생할경우 헤메는 경우를 줄일 수 있습니다. 

Boolean result = false;

public void somethingWork_A() {
	Log.d("로그 somethingWork_A",String.valueOf(result));
		result = true;
		startSomething_A()
}

public void startSomething_A() {
		result = false;
	Log.d("로그 startSomething_A",String.valueOf(result));
}

 

보통 개발중에는 코드의 여기저기에 위와 같이 로그를 붙여놓고 사용하고 

 

개발이 끝난 후에는 부분에는 로그가 필요없으니 로그를 삭제합니다.

 

 

그런데 종종 개발을 위해 사용중인 기기를 PC에 물려 Logcat을 보면

 

사용중인 다른 앱 여기저기에서 Log가 뜨는 경우를 확인할 수 있습니다.

 

 

개발이 끝난 뒤에도 사용했던 로그를 지우지 않았기 때문에

 

개발할 때 사용했던 로그가 그대로 노출되는 것으로 생각됩니다.

 

 

Log를 일일이 찾아서 지우는 일이 제법 번거롭고 놓치는 경우가 있어서 

 

저도 앱 배포후에 다음 버전 테스트를 할 때 경험했던적이 있습니다.

 

 

 

이게 너무 번거로워서, 아래와 같이

 

배포버전이 아닌 테스트 할때만 Log가 뜨는 DevLog Class를 만들어서 사용하고 있습니다.

 

 

DevLog.class

import android.util.Log;
import co.somethings.someapp.BuildConfig;


public class DevLog {

        private static final String TAG = "로그";

        public static void d(String msg) {
            if (BuildConfig.DEBUG) {
                Log.d(TAG, msg);
            }
        }
}

 

사용은 아래와 같이 해주시면 됩니다.

public void somethingWork_A() {
	DevLog.d("Work failed");
		result = true;
		startSomething_A()
}

 

앱을 빌드하면 BuildConfig.java 파일이 자동으로 생성되는데 여기서

 

해당 빌드 타입이 DEBUG인지 확인 한 후에 로그를 띄워주도록 되어 있어서

 

개발 중이던, 개발 후던 로그를 지울 필요가 없고

 

DEBUG가 아닌 배포버전에서는 로그가 뜨지 않아 확인할 수 없습니다.

반응형

댓글