Categories: Android

[안드로이드] 배포시 Log 관련 주의사항

 프로그래밍을 하다 보면 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 들이 노출 되지 않도록 처리하는 것이 좋다는 것입니다.
dingpong

Share
Published by
dingpong

Recent Posts

LFS error at git checkout in Jenkins

Problem stdout: stderr: Downloading xxxx.a (83 MB) error: git-lfs smudge -- 'xxxx.a' died of signal…

3년 ago

플레이모빌 크리스마스 XXL 6629 산타 해외직구 구매가 배송비

https://www.playmobil.de/playmobil-xxl-weihnachtsmann/6629.html 구매가 : 48.49 유로 (플레이모빌 독일 홈페이지) 결제하는데 안되서 PayPal 로 결제하니 잘 잔행…

3년 ago

코카콜라 제로 355ml 72캔 구매가 (캔당 453원)

롯데온에서 355ml 24캔 롯데카드로 구매시 13,210원 https://www.lotteon.com/p/product/PD36294 APP으로 35,000원 이상 구매시 7,000 포인트 적립 행사…

4년 ago

경동나비엔 온수매트 EQM541-QS (퀸사이즈) 구입가

구입 매장 : 현대 홈쇼핑 (홈쇼핑 방송 중) 모바일 앱 http://www.hyundaihmall.com/front/pda/itemPtc.do?slitmCd=2114353981 최종 결제 가격 :…

4년 ago

PostMessage에 shared_ptr과 같은 스마트 포인터 넣기

PostMessage의 WPARAM 이나 LPARAM 으로 shared_ptr 와 같은 스마트 포인터 객체를 넘기고 싶은 경우가 있습니다.…

4년 ago

RC2255 – named STRINGTABLEs are not allowed

Visual Studio 에서 작업 중 이러한 컴파일 에러가 발생한 케이스가 있었습니다. 이 경우에는 .rc 파일에…

4년 ago