Android의 내 응용 프로그램에서 보낸 메시지 만 가져 오려면 LogCat을 필터링 하시겠습니까? 프로그램에서도 메시지를 볼 수 있습니다. 이것을 필터링하고

Android 용 ADT와 함께 Eclipse와 함께 Logcat을 사용하면 다른 많은 응용 프로그램에서도 메시지를 볼 수 있습니다. 이것을 필터링하고 내 응용 프로그램의 메시지 만 표시하는 방법이 있습니까?



답변

패키지 이름은 고유하므로 태그와 함께 함수를 패키지 이름으로 사용하고 패키지 이름으로 필터링 할 수 있습니다Log .

참고 : 빌드 도구 21.0.3부터 TAGS가 23 자 이하로 제한되어 더 이상 작동하지 않습니다.

Log.<log level>("<your package name>", "message");

adb -d logcat <your package name>:<log level> *:S

-d는 실제 장치를 -e나타내며 에뮬레이터를 나타냅니다. 있다면 당신이 사용할 수있는 실행 1 개 이상 에뮬레이터 -s emulator-<emulator number>(예 -s emulator-5558)

예: adb -d logcat com.example.example:I *:S

또는 System.out.print메시지를 로그에 보내는 데 사용 하는 경우 adb -d logcat System.out:I *:SSystem.out에 대한 호출 만 표시 하는 데 사용할 수 있습니다 .

https://developer.android.com/studio/command-line/logcat.html 에서 모든 로그 수준과 자세한 정보를 찾을 수 있습니다.

http://developer.android.com/reference/android/util/Log.html

편집 : 나는 총을 약간 뛰어 넘고 Eclipse에서 logcat에 대해 묻는다는 것을 깨달았습니다. 위에서 게시 한 것은 명령 줄에서 adb를 통해 logcat을 사용하는 것입니다. 동일한 필터가 Eclipse로 전송되는지 확실하지 않습니다.


답변

리눅스와 OS X

ps / grep / cut을 사용하여 PID를 잡고 해당 PID로 logcat 항목을 grep하십시오. 내가 사용하는 명령은 다음과 같습니다.

adb logcat | grep -F "`adb shell ps | grep com.asanayoga.asanarebel  | tr -s [:space:] ' ' | cut -d' ' -f2`"

(동일한 숫자를 포함하는 관련되지 않은 로그 라인의 이론적 문제를 피하기 위해 정규식을 더 향상시킬 수는 있지만 결코 문제가되지 않았습니다)

여러 프로세스를 일치시킬 때도 작동합니다.

윈도우

Windows에서는 다음을 수행 할 수 있습니다.

adb logcat | findstr com.example.package


답변

Android 7.0부터 logcat에는 –pid 필터 옵션이 있으며 pidof 명령을 사용할 수 있으므로 com.example.app을 패키지 이름으로 바꾸십시오.
(우분투 단말기 / Android 7.0부터)

adb logcat --pid=`adb shell pidof -s com.example.app`

또는

adb logcat --pid=$(adb shell pidof -s com.example.app)

pidof 명령에 대한 자세한 내용은
https://stackoverflow.com/a/15622698/7651532


답변

필터 추가

필터 추가

이름을 지정하십시오

여기에 이미지 설명을 입력하십시오

필터를 선택하십시오.

여기에 이미지 설명을 입력하십시오


답변

나를 위해 이것은 Mac에서 작동 Terminal
합니다. adb다음 터미널에 아래 명령을 입력 한 폴더로 이동하십시오.

./adb logcat MyTAG:V AndroidRuntime:E *:S

여기에서 모든 로그를 필터링 MyTAG하고AndroidRuntime


답변

5 월 17 일 업데이트

몇 년이 지났고 일이 바뀌 었습니다. 그리고 Eclipse는 더 이상 공식적으로 지원되지 않습니다. 따라서 여기에는 두 가지 최신 접근 방식이 있습니다.

1. 안드로이드 스튜디오

여기에 이미지 설명을 입력하십시오
에서 Android monitor도구 상자, 당신은 로그 캣의 당을 필터링 할 수 있습니다 debuggable process. 일반적으로 응용 프로그램을 개발할 때는 디버깅 가능한 프로세스입니다. 가끔씩 나는 이것에 문제가 있고 다음을 수행하십시오.

  1. Tools-> Android-> Enable ADB Integration.
    이미 활성화되어 있으면 끄고 다시 켭니다.

  2. 모바일 장치를 분리했다가 다시 연결하십시오.

정규식과 디버그 수준을 통해 필터링하는 옵션도 있습니다

2. 로그 캣 색상

adb logcat터미널 기반 솔루션을 사용하려는 경우 멋진 파이썬 래퍼입니다 . 그것에 대한 좋은 점은 여러 구성을 저장하고 간단히 재사용 할 수 있다는 것입니다. 필터링 기준 tags은 매우 안정적입니다. 필터링하여 package하나 이상의 앱 로그 만 볼 수 있지만 앱을 시작 logcat-color하기 직전에 시작합니다.

기존 답변 :

이전 답변에 댓글을 달 수 없으므로 새 답변을 게시 할 것입니다. 이것은 PID Mulcahy 의 답변에 대한 주석 이며 adb shell psPID 열은 가변적 이므로 대부분의 장치에서 작동하도록 명령을 변경하는 방법을 보여줍니다 .

참고 : 아래 명령은 많은 장치를 연결 한 경우에 작동합니다. 그래서 device id필요합니다. 그렇지 않으면 괄호 ‘[‘, ‘]’를 생략하면됩니다.

1. pid 열을 찾으려면 다음을 입력하십시오.

adb [-s DEVICE_ID] shell ps | head -n 1

이제 PID의 열 번호를 기억하십시오. 번호 매기기는1 .

그런 다음 다음을 입력하십시오.

adb [-s DEVICE_ID] logcat | grep $(adb [-s DEVICE_ID] shell ps \
| grep "com.example" | awk -F" " ' {print $PUT_COLUMN_HERE}')

암기 한 열을 입력하기 만하면됩니다. PUT_COLUMN_HERE예를 들어$5

경고

응용 프로그램이 OS에서 새 PID를 가져 오기 때문에 응용 프로그램을 다시 실행할 때마다 두 번째 명령을 다시 실행해야합니다.


답변

이것은 git bash에서 나를 위해 일하고있다 :

$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid