Android에서 로그 기능 사용하기
1. Android 로그 유틸리티 클래스: Log
Android SDK는 전용 로그 유틸리티 클래스 android.util.Log를 제공하며, 우선순위가 낮은 순서대로 5단계의 로그 메서드를 제공합니다:
| 메서드 | 레벨 | 설명 |
|---|---|---|
Log.v() | Verbose | 가장 낮은 수준, 가장 사소한 로그 정보 출력에 사용 |
Log.d() | Debug | 디버그 정보, 개발 시 가장 많이 사용됨 |
Log.i() | Info | 일반 정보 메시지 |
Log.w() | Warn | 경고 정보, 잠재적 위험 가능성 있음 |
Log.e() | Error | 오류 정보, 예컨대 catch 블록에서 포착된 예외 |
2. 기본 사용법
MainActivity의 onCreate() 메서드에 로그를 추가합니다:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Info 레벨 로그 출력
Log.i("foxdevelop", "xxxxxx");
}Code language: JavaScript (javascript)
메서드 매개변수 설명:
| 매개변수 | 설명 |
|---|---|
| 첫 번째 매개변수 (tag) | 로그 태그, 출처를 식별하는 짧은 문자열로 필터링에 유용 |
| 두 번째 매개변수 (msg) | 로그 내용, 출력하려는 메시지 |
프로젝트를 실행한 후 Logcat 창을 열면 출력된 로그를 볼 수 있습니다.

3. Logcat 창 사용 팁
| 기능 | 작업 |
|---|---|
| 로그 보기 | 앱 실행 후 하단 Logcat 패널에 자동으로 표시됨 |
| 키워드 검색 | Logcat 검색창에 키워드(예: foxdevelop) 입력하여 필터링 |
| 레벨로 필터링 | 드롭다운 메뉴에서 Show only selected application / No Filters / Edit Filter Configuration 선택 |
| 태그로 필터링 | 검색창에 tag:foxdevelop 입력 |
4. System.out.println()을 권장하지 않는 이유
| 비교 항목 | System.out.println | Log |
|---|---|---|
| 제어 가능성 | 제어 불가 | 레벨 및 필터로 제어 가능 |
| 시간 정보 | 타임스탬프 없음 | 각 로그에 정확한 시간 포함 |
| 필터링 | 태그로 필터링 불가 | 태그, 레벨, 프로세스 등 다차원 필터링 지원 |
| 로그 레벨 | 레벨 구분 없음 | 5단계 레벨로 문제 해결 용이 |
| 운영 환경 | 비활성화 불가 | 비활성화 또는 특정 레벨만 출력하도록 설정 가능 |
// 권장하지 않음
System.out.println("xxxxxxx");
// 권장
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

5. Android Studio 로그 단축키
AS는 강력한 Live Template 단축키를 제공합니다. 입력 후 Tab을 누르면 자동 완성됩니다:
| 단축키 (입력 후 Tab) | 생성되는 코드 | 설명 |
|---|---|---|
logd | Log.d(TAG, "onCreate: "); | Debug 로그 생성 |
logi | Log.i(TAG, "onCreate: "); | Info 로그 생성 |
logw | Log.w(TAG, "onCreate: "); | Warn 로그 생성 |
loge | Log.e(TAG, "onCreate: "); | Error 로그 생성 |
logv | Log.v(TAG, "onCreate: "); | Verbose 로그 생성 |
logt | private static final String TAG = "클래스명"; | 클래스 본문에서 사용 시 현재 클래스 이름이 TAG로 자동 생성됨 |
6. 전체 예제
public class MainActivity extends AppCompatActivity {
// 클래스 본문에서 logt + Tab 사용하여 자동 생성
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TAG 상수를 사용하여 로그 출력
Log.i(TAG, "foxdevelop");
Log.e(TAG, "여기서 예외가 발생했습니다");
// 권장하지 않음
System.out.println("xxxxxxx");
}
}Code language: PHP (php)
실행 후 Logcat 출력 결과:
I/MainActivity: foxdevelop
E/MainActivity: 여기서 예외가 발생했습니다Code language: HTTP (http)
로그 기능
Previous: build.gradle
Next: 액티비티(Activity)