Android (안드로이드)

[Android] 로그 Log / Logcat 사용하기

Oscar:) 2022. 8. 4. 22:57

 

이클립스로 자바 공부를 할 때는,

출력문을 사용하여 데이터를 바로바로 확인할 수 있었다.

 

하지만, 안드로이드 스튜디오에서는

스캐너가 아닌 Log를 사용하여 데이터를 확인할 것이다.

 

 

이번 포스팅에서는 로그(Log) 에 대해 알아보겠다.

 

 

 


 

Log 란 무엇일까?

 

사전적 의미로는 다음과 같이 정의한다.

'소프트웨어에서 있었던 일을 기록한 파일'

 

 

시스템 자체적으로 기록을 남기는 로그가 있는 반면,

우리가 직접 확인하고 싶은 데이터를 로그로 남길 수도 있다.

 

 

android.util.Log 클래스로 로그를 사용하며,

Logcat 으로 기록을 확인한다.

 

우리는 로그를 사용함으로써

디바이스에서는 보이지 않는 데이터를 확인할 수 있다.

 

 

 

Log의 종류

 

일반적으로 5개의 종류를 메서드로 사용하며,

우선 순위가 가장 높은 것 & 세부 정보가 적은 순으로 나열해본다.

 

 

· Log.e

error(=오류) 의 약자이다.

 

말 그대로, 에러를 내뿜는 로그이다.

에러답게, 기본 세팅값으로는 빨간 색상 텍스트로 표시된다.

 

우리가 직접 작성한 클래스에서 에러가 난 경우에는

해당 위치가 파란 색상 텍스트로 표시되어 원인을 찾기 쉽다.

 

 

+ 빨간 색상이 눈에 잘 띈다는 이유로,

가독성을 높이기 위해 일반적인 용도로 사용하는 사람도 있다.

 


 

· Log.w

warn(=경고하다) 의 약자이다.

 

아직 에러는 아니지만, 발생할 수 있는 문제를 경고한다.

 


 

· Log.i

info(=정보) 의 약자이다.

 

보통 debug 보다 중요한 정보를 다룰 때 사용한다.

성공적인 의미를 포함한 데이터를 다룰 때에도 사용한다.

 


 

· Log.d

debug(=검출하다) 의 약자이다.

 

디버깅 목적으로 사용되며,

통상적으로 제일 흔하게 쓰이는 로그이다.

 

 


 

· Log.v

verbose(=장황한) 의 약자이다.

 

장황하다는 말 그대로,

가장 많은 정보를 담고 있다.

 

디바이스에서 진행되는 거의 모든 기록을 확인할 수 있다.

 


 

본인만을 위한 확인 용도로 쓴다면 상관없긴 하다만,

각 메서드는 상황 · 목적에 맞게끔 사용하는 것을 권장한다.

 

소스 코드의 지침에서도 다음과 같이 각 로그의 특징을 설명한다.

 

상세도의 순서는 ERROR, WARN, INFO, DEBUG, VERBOSE 이다.
VERBOSE 는 개발 중을 제외하고는 응용 프로그램으로 컴파일해서는 안 된다.
DEBUG 는 컴파일되지만 런타임에 제거된다.
ERROR, WARN, INFO 는 항상 유지된다.

 

 

Log 사용법

 

먼저, android.util 패키지에서 import 해주어야 한다.

import android.util.Log;

 

그리고 다음과 같은 문법을 가진다.

(Log.d 를 예시로 설명한다)

Log.d(String, String);

첫 번째 String 에는 TAG 를 작성하고,

두 번째 String 에는 메시지를 작성해준다.

 

 

TAG 에는 확인할 시스템 구성요소를 작성하면 된다.

보통, 해당 액티비티 이름을 상수로 선언하여 사용한다.

(쉽게 말해, 로그를 구분하게 해줄 요소이다)

 

공식문서에서도 첫 번째 매개변수로

TAG 상수를 사용할 것을 권장하고 있다.

 

 

지난 액티비티 생명 주기 포스팅에서 사용했던 로그이다.

 

TAG 를 "메인 액티비티" 로 초기화 해주고,

사용한 로그에 TAG 를 작성해 주었다. 

 

이제 로그를 사용할 준비는 끝났다.

 

에뮬레이터를 실행시키면 우리가 작성한 Log를 Logcat에서 확인할 수 있다.

 

 

 

Logcat

 

안드로이드 스튜디오의 좌측 하단에 보면 Logcat 탭이 있다.

에뮬레이터를 실행시키고 Logcat 을 보면 다음과 같이 나타날 것이다.

 

 

Logcat 에는 여러가지 탭이 존재하고, 빨간색으로 표시를 해보았다.

각각의 의미는 다음과 같다.

 

① : 연결된 디바이스를 선택하는 탭이다.

 

② : 연결된 앱 (패키지 이름) 을 선택하는 탭이다.

 

③ : 확인할 로그의 종류를 선택하는 탭이다.

 

④ : 검색어로 원하는 문자를 필터링할 수 있다.

 

 

사실, ①, ② 는 자동으로 선택되기 때문에,

주로 ③, ④ 만 필터링 해주면 된다.

(연결과 해제가 잦을 경우, ①, ② 또한 확인할 필요는 있다)

 


 

위 사진과 같이, 우리가 작성한 로그 이외에도

대량의 시스템 로그가 기록되는 것을 확인할 수 있다.

 

본인은 Log.d 메서드를 사용했기에 Debug 탭을 선택하고,

String TAG = "메인 액티비티";

이렇게 선언했으므로 '메인' 키워드로 검색해 보겠다.

 

 

원하는 결과만 깔끔하게 확인할 수 있다.

 

 


 

 

지금까지 안드로이드에서 로그를 사용하는 방법에 대해 알아보았다.

 

 

새로운 기능에 대해 공부할 때면, 분명 막히는 순간이 온다.

 

그럴 때에는 과정을 천천히 짚어보기 마련인데,

로그를 하나씩 찍어보는 과정은 정말 큰 도움이 될 것이다.