https://offbyone.tistory.com/261
모든 프로그래밍에서 디버깅은 빠지지 않는 작업 입니다. 안드로이드 프로그램도 Java를 시용하므로 많이 사용하던 System.out.println(); 을 사용하여 값을 출력해 볼 수 있습니다. 하지만 Android는 Logcat이라는 디버그 메세지를 표시하는 logcat Monitor 를 포함하고 있습니다. 이 Logcat을 이용하여 로그를 남기는 방법을 알아 봅니다.
1. 많이 쓰던 방식 System.out.println();
이걸로도 원하는 값을 출력할 수 있습니다.
2. Logcat 기본적인 사용법
- Log 객체를 사용하기 위해서 import 합니다.
import andorid.util.Log;
- 로그 메소드의 첫 번째 인자로 사용할 상수 TAG 를 정의합니다. 메세지들을 구분하는 구분 값으로 사용되어 집니다. 보통 현재 클래스의 이름을 많이 사용합니다. TAG의 길이가 23자를 넘으면 logcat 출력에서 잘립니다.
private static final String TAG = "MainActivity";
- 로그를 출력합니다. 첫번째 인자는 TAG 이고, 두 번째 인자가 로그로 출력될 메세지 입니다. 이 예제에서는 textView에 보여지는 값을 출력해 보았습니다.
Log.d(TAG, textView.getText().toString());
사용할 수 있는 메소드는 로그 레벨에 따라 여섯가지가 있습니다.
* Log.e(String, String) (ERROR)
* Log.w(String, String) (WARNING)
* Log.i(String, String) (INFO)
* Log.d(String, String) (DEBUG)
* Log.v(String, String) (VERBOSE)
* Log.wtf(String, String) (ASSERT)
- 로그 포맷은 다음 형식을 가집니다.
01-17 23:33:46.712 4361-4361/com.tistory.pentode.helloworld D/MainActivity: OK 버튼이 눌려졌습니다.
date time PID-TID/package priority/tag: message
* date : 날짜
* time : 시간
* PID : 프로세스 아이디
* TID : 쓰레드 아이디
* pakage : 클래스의 패키지
* priority : 우선 순위 - V(Verbose) < D(Debug) < I(Info) < W(Warning) < E(Error) < A(Assert)
* tag : 메소드의 첫번째 인자인 TAG 입니다.
* message : 메소드의 두 번째 인자인 message 입니다.
3. Logcat 필터기능 사용하기
- 1 번 콤보박스에서 로그 레벨을 선택하여 원하는 레벨의 로그만 볼수 있습니다.
- 2 번 입력박스에 검색어를 입력하여 메세지를 검색할 수 있습니다.
- 3 번 로그 필터 콤보박스에서 필터 옵션을 선택할 수 있습니다.
* Show only selected application - 앱 코드에서 생성되는 메시지만 표시합니다(기본 설정). logcat Monitor는 활성 앱의 PID를 사용하여 로그 메시지를 필터링합니다.
* No Filters - 아무런 필터도 적용하지 않습니다. logcat Monitor는 개발자가 선택한 프로세스에 상관없이 기기에서 수신되는 모든 로그 메시지를 표시합니다.
* Edit Filter Configuration - 사용자설정 필터를 생성하거나 수정합니다. 예를 들어, 두 앱의 로그 메시지를 동시에 볼 수 있는 필터를 생성할 수도 있습니다.
이상으로 안드로이드 프로그램에서 Logcat 을 사용하여 로그를 남기는 방법에 대해 알아보았습니다.