로그 기능

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.printlnLog
제어 가능성제어 불가레벨 및 필터로 제어 가능
시간 정보타임스탬프 없음각 로그에 정확한 시간 포함
필터링태그로 필터링 불가태그, 레벨, 프로세스 등 다차원 필터링 지원
로그 레벨레벨 구분 없음5단계 레벨로 문제 해결 용이
운영 환경비활성화 불가비활성화 또는 특정 레벨만 출력하도록 설정 가능
// 권장하지 않음
System.out.println("xxxxxxx");

// 권장
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

5. Android Studio 로그 단축키

AS는 강력한 Live Template 단축키를 제공합니다. 입력 후 Tab을 누르면 자동 완성됩니다:

단축키 (입력 후 Tab)생성되는 코드설명
logdLog.d(TAG, "onCreate: ");Debug 로그 생성
logiLog.i(TAG, "onCreate: ");Info 로그 생성
logwLog.w(TAG, "onCreate: ");Warn 로그 생성
logeLog.e(TAG, "onCreate: ");Error 로그 생성
logvLog.v(TAG, "onCreate: ");Verbose 로그 생성
logtprivate 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)

로그 기능

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다