Android 로그를보고 검사하려면 어떻게해야합니까?


109

안드로이드 시스템 로그에는 많은 흥미로운 것들이 있습니다.

  • 근본 원인 찾기
  • 오작동하는 앱 식별

Android 로그를보고 검사하려면 어떻게해야합니까?


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
Matthew 읽기

답변:


59

안드로이드 4.1 이상

선호하는 방법은 SDK 를 다운로드하여 사용하는 것입니다 adb logcat(장치에서 "개발자 옵션"을 활성화해야 함).

전체 시스템 로그를 볼 수있는 앱이 있지만 루팅 된 기기에서만 작동하거나 작동하려면 수동 명령을 실행 adb해야합니다. 자세한 내용을 보려면 이 질문을 참조하십시오.

안드로이드 4.0 이상

SDK 를 다운로드하고 Google Play 스토어에서 Logcat Extrem 을 사용 adb logcat하거나 가져 오면 휴대 전화에 직접 로그가 표시됩니다.


2
또는 "logcat> /sdcard/log.txt"명령과 함께 터미널 에뮬레이터를 사용하여 SD 카드의 파일에 로그를 지속적으로 쓸 수 있습니다. 이는 임의 재부팅과 관련된 문제를 파악하는 데 도움이됩니다.
Chahk

좋은 지적. 일부 전화는 사소한 정보로 가득 찬 로그를 스팸으로 보내는 경향이 있으므로 파일 크기와 데이터를 최소화하려면 developer.android.com/guide/developing/tools/adb.html의
onik

LogCat Apps는 JellyBean에서 전혀 작동하지 않습니다. Google은 Android API를 변경했습니다. 앱은 더 이상 자신의 앱 이외의 다른 앱에서 로그를 읽을 수있는 권한이 없습니다.
Leandros

PC에서 로그를 수집하는 간단한 유틸리티를 만들었습니다. gist.github.com/hrj/5983971
HRJ

Logcat Extreme은 로그를보기에 좋은 앱입니다
Arpit Patel

57

로그 파일 위치

로그 (충돌을 포함하여 로그 포함)가 나타날 수있는 여러 디렉토리가 있습니다. 모든 디렉토리가 표준화 된 것은 아닙니다 (즉, 일부는 ROM에 따라 다를 수 있음).

  • /data/anr: 일부 추적 파일이 여기에있는 것 같습니다 (Dalvik은 ANR에 스택 추적을 여기에 씁니다 (예 : "응답이 응답하지 않음", "포스-클로즈"). 예를 들어 로그 발췌 참조 )
  • /data/dontpanic표준 위치 (AOSP)로 보이며 추적을 포함한 일부 충돌 로그가 포함되어 있습니다 (예 : viaForensicsStackOverflow 참조 )
  • /data/kernelpanics Android 기기에 "커널 패닉"이없는 다른 위치입니다. 아직 콘텐츠가 없습니다.
  • /data/panic/panic_daemon.config구성된 다른 위치에 5 점 - 내 드로이드 2에 그것은 언급/sdcard/panic_data/
  • 언급 된 Droid 2에도 /data/panicreports디렉토리가 있습니다 (여기서는 비어 있음).
  • /data/tombstones여러 tombstone_nn파일을 보유 할 수 있습니다 ( nn시리얼이있을 때마다 새 파일마다 증가). 묘비가 죽은자를 위해 배치됨에 따라 여기서 "사고로 사망 한 프로세스"(예 : 추락)에 대해 수행되며 Linux / Unix 시스템에서 "코어 덤프"라고합니다. 그러나 모든 앱이 묘비를 생성하는 것은 아닙니다. 개발자가 명시 적으로 활성화해야합니다 ( Android 코어 덤프 디버깅 참조 ).

나를 탈출 한 곳이 더있을 수 있습니다. 그러나 대부분의 로깅이 완료 tmpfs되면 재부팅시 이러한 데이터가 손실되고 OP 질문과 일치하지 않습니다.

터미널 앱 (또는 adb)과 함께 사용할 로그 명령

여러 명령으로 많은 정보를 얻을 수 있습니다. 대부분의 경우 파일로 파일을 리디렉션 > filename.ext하거나 ( | grep search-for-this) 필터를 통해 파이프하는 것이 좋습니다 ( ).

커널 로그

다음은 루트없이 작동합니다.

$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>

로그 캣

여기에서 라디오, 이벤트 등 관심 분야를 지정할 수 있습니다.

# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0] 
<snip>

장치 정보 얻기

그리고 그 많은 것들 : 장치 세부 사항, 계정 정보, 서비스 ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip> 

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================

Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown 
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB 
<snip>

올인원

logcat에서 dumpstate에 이르기까지 모든 것을 함께 큰 공을 만드십시오.

$ bugreport > /mnt/sdcard/bugreport.txt

나는 당신이 정말로 마지막 명령을 리디렉션하고 싶다고 확신합니다 ... xD

권한에 관한 것

추신 : 당연히 대부분의 소스가 내부 저장소에 있기 때문에 이러한 정보에 액세스하려면 루트가 필요할 수 있습니다.


adb logcat 명령에 대한 통찰력을 얻으려면 여기를 참조 하십시오 .
테스트

또는 로깅 태그-위키 @testing을 확인하십시오 -더 많은 참조가 있습니다 :)
Izzy

"Android 코어 덤프 디버깅"에 대한 링크가 작동하지 않습니다. 대안을 얻을 수 있습니까?
Spidey

1
@Spidey 이런 종류의 문제에 대해 항상 Archive.ORG 가 있습니다 (링크는 작업 사본으로 이동합니다).
Izzy

12

A는 것을 발견 CatLog는 안드로이드가 aLogCat을 다음 조금 더 나은 기록이 표시됩니다. 게다가 adb logcat, 내가 사용하고있는 것입니다.


LogCat 앱에 관한 위의 내 의견을 참조하십시오.
Leandros

2
질문을 업데이트했습니다. 답변의 순서가 시간에 따라 변경 될 수 있으므로 상대 위치 정보 (예 : "위")는 쉽게 구식이 될 수 있습니다.
흐름

3

새로운 안드로이드 버전에서도 작동하는 루트가없는 방법 :

전제 조건 :

  • 리눅스, 윈도우 또는 맥
  • 장치 용 USB 케이블
  • 안드로이드 장치

명령:

  1. adb를 사용하기 위해 장치 드라이버를 설치하십시오. 필요한 모든 것을 여기에서 찾을 수 있습니다
  2. OS 용 adb 실행 파일을 다운로드하십시오. Android SDK의 일부이지만 adb 실행 파일을 개별적으로 찾을 수 있습니다.
  3. 당신의 안드로이드 장치를 연결합니다.
  4. 개발자 옵션을 활성화하십시오 .
  5. USB 디버깅을 활성화하십시오.
  6. promt (windows) 또는 터미널 (linux / mac) 명령을 엽니 다. 방법 : Windows : windows + r> "cmd"(따옴표없이) 입력> Enter | Linux에서 : 터미널을 여는 방법을 모르십니까? LOL | Mac : TerminalSpotlight를 입력 하고 엽니 다
  7. adb 실행 파일이있는 디렉토리로 CD를 이동하십시오. Windows의 경우 : adb 실행 파일을 다운로드 한 디렉토리로 이동하십시오 (Shift + 오른쪽 클릭). "콘솔 열기"(또는 유사한) | Linux / Mac : 디렉토리에서 마우스 오른쪽 버튼을 클릭하고 "여기에서 터미널 열기"를 선택하십시오 (또는 디렉토리로 CD를 넣으십시오).
  8. cmd / terminal : adb devices을 입력 하여 장치가 올바르게 연결되어 있는지 확인하십시오.
  9. 장치가 올바르게 선택된 경우, 입력 adb logcat하여 강력하고 마술적인 로그 캣 (일명 스택 추적)을 표시하십시오.
  10. 장치에서 오류 (또는 무엇이든)를 재현하십시오.
  11. 직후, 전체 cmd / 터미널 창을 http://pastebin.com/ 과 같은 붙여 넣기 서비스에 붙여 넣고 보내주십시오.

( Leandros 에서 대부분 복사 )


2

무료 앱 SysInfo ( 프로젝트 페이지 )는 시스템 로그를 표시 할뿐만 아니라 이메일, 보관 용 계정, NFC 등을 통해 전체 시스템 보고서를 압축하여 전송합니다. 다른 흥미로운 시스템 정보는 말할 것도 없습니다.


(예, 거의 1 년 늦었지만 언급이 필요합니다).
JRobert

두 링크가 모두 끊어졌습니다.
jk7

두 번째 링크 (프로젝트 페이지)는 여전히 나를 위해 작동하지만 마지막 항목은 2010 년입니다. Android는 이후 Sysinfo의 많은 기능을 손상 시켰습니다.
JRobert

-1

에 있습니다 /sdcard/bugreports.


3
휴대폰에 이러한 폴더가 없었습니다 ... 이것은 제조업체 또는 장치에만 해당됩니까?
Matthew 읽기

2
에서 로그 캣 - 사이 애 노젠 모드 위키 : 당신은 / SDCARD / 버그 리포트에서 버그 보고서 파일을 생성하는 마법의 키 조합을 사용할 수 있습니다. OP는 "자동으로 생성 된"항목을 찾기 때문에 a) 약간 특정 (아마도 CM), b) 질문에 대한 답변이 아닌 것 같습니다.
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.