Android 개발 시 몇 가지 로그 확인 방법

1. Kernel 에서 pr_debug 등이 안나올 때,
간단히는 맨 위(“#include <linux/kernel.h>”보다 위)에 “#define DEBUG” 추가 혹은  http://www.kernel.org/doc/local/pr_debug.txt 처럼 makefile 수정
DEBUG를 추가했을 때 왜 pr_debug 가 Enable 되는지 보고 싶다면, include/linux/kernel.h 참고

커널 메시지 보기 : 커널이 어느정도 안정적이라면 UART 등을 이용하는 것보다 adb 쉘을 이용하는 것이 더 편하던데..

adb shell cat /proc/kmsg

2. Android 에서 LOGE, LOGW, LOGI, LOGD 가 안나올 때,
맨 위에 “#define LOG_NDEBUG 1” 추가
LOGV 까지 보고 싶을 땐 “#define LOG_NDEBUG 0” 추가
LOG_NDEBUG 가 미치는 영향을 보고 싶다면, system/core/include/cutils/log.h 파일 참고.

logcat 메시지 보기

adb logcat
그러나 로그 메시지 보기에는 역시 DDMS 가 가장 좋다.
로그 TAG를 통해 필터링해서 보는 것이 가장 보기 쉽고 깔끔하다.

아쉬우나마 adb logcat 을 이용해서 필터링 하고 싶다면 다음과 같이 한다.

adb logcat <TAG>:<LOGLEVEL> *:S
예를 들어, CameraTest 는 V 레벨로(CameraTest:V), Camera는 D 레벨로(Camera:D), 나머지는 안나오게 하고 싶다면(*:S) 다음과 같이 한다.

adb logcat CameraTest:V Camera:D *:S

filter-spec 등 adb의 사용법을 더 알고 싶다면 Android Debug Bridge(http://developer.android.com/guide/developing/tools/adb.html)를 참고한다.

8 thoughts to “Android 개발 시 몇 가지 로그 확인 방법”

    1. ㅎㅎㅎ 선임님 댓글 달아주셔서 고마워요~
      악플보다 무서운게 무플이라고, 제 블로그 봤다는 사람은 많은데 아무도 흔적은 안남겨주셔서 서운했는데 ㅠㅠ
      제가 적어놓은게 선임님께도 도움되었으면 좋겠어요~

  1. 안녕하세요 커널 메시지 확인에 대해 질문 하고 싶습니다.
    printk를 사용하여서 커널 메시지 확인을 하고 싶어서
    #include #include #include 을 추가 하고 printk문을

    printk( “MMC_SWITCH : arg=%xn”,arg);
    위와 같이 사용하고 make로 컴파일을 하니

    host C: emulator-target-arm <= external/qemu/hw/goldfish_mmc.c external/qemu/hw/goldfish_mmc.c:17:54: error: linux/module.h: No such file or directory external/qemu/hw/goldfish_mmc.c:21:52: error: linux/init.h: No such file or directory external/qemu/hw/goldfish_mmc.c: In function 'goldfish_mmc_do_command': external/qemu/hw/goldfish_mmc.c:362: warning: implicit declaration of function 'printk' make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-arm_intermediates/hw/goldfish_mmc.o] 오류 1 라고 나왔는데 혹시 이것을 어떻게 해결해야되는지 알고 계시나요??? 제발 알려주세요 ㅠ

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.