프로그래밍을 하다 보면 Log 남겨야 될 일이 많이 생깁니다. 안드로이드에서는 Log 라는 Class를 사용하여 Logcat을 통해 쉽게 Log 를 볼 수 있도록 지원하고 있습니다. 다만 이러한 Log 를 남기도록 하여 배포를 하면 프로그램의 중요한 정보가 다른 사람에게 노출 될 수도 있습니다. 그렇기 때문에 배포를 하는 버전에서는 Log 를 남기지 않도록 처리하는 작업이 필요합니다. 이러한 부분은 프로젝트 전체 소스에 영향이 있을 수 있는 부분이기 때문에 프로젝트 초기에 작업을 해두고 규칙을 정해 두는 것이 좋습니다.
public class CustomLog {
public static void i(String tag, String message) {
Log.i(tag, message);
}
public static void w(String tag, String message) {
Log.w(tag, message);
}
public static void d(String tag, String message) {
Log.d(tag, message);
}
public static void e(String tag, String message) {
Log.e(tag, message);
}
}
위와 같이 Log Class를 한번 감싸는 Class를 만들어서 모든 소스에서 해당 Class의 함수를 사용하게 하고, 배포 할 때에는 함수 안에 구현 부분을 주석처리 한다던가 하면 간단하게 문제를 해결 할 수 있습니다. 또한 다양한 방법이 있을 수 있는데, 이러한 부분은 프로젝트 성격이나 본인 편의에 맞춰서 각자 구현하면 되는 부분이라고 할 수 있습니다. 저는 같은 Interface를 사용하는 여러 Class를 만들어서 각자 다양한 Log에 대한 기능을 구현하고 new 할 때 Class 이름만 바꾸면 되도록 하였습니다. 결론적으로 핵심은 배포 버전에서는 중요한 Log 들이 노출 되지 않도록 처리하는 것이 좋다는 것입니다.