어떻게 adb logcat 출력 을 걸 러 냅 니까?
프로필:
본 고 는 셸 명령 행 에서 adb logcat 출력 을 걸 러 내 는 몇 가지 작은 기 교 를 소개 합 니 다.
개발 과정 에서 다른 사람의 로그 가 홍수 처럼 순식간에 화면 을 가득 채 우 고 자신 에 게 유용 한 정보 가 모두 잠 겨 기분 에 도 영향 을 주 고 효율 에 도 영향 을 주 는 것 을 자주 볼 수 있다.다음은 내 가 아 는 몇 가지 여과 방법 이다.
1. 필요 한 출력, 화이트 리스트 만 표시
가장 편리 한 것 은 당연히 파 이 프 를 통 해 grep 필 터 를 사용 하 는 것 입 니 다. 이렇게 하면 grep 의 강력 한 정규 표현 식 과 일치 할 수 있 습 니 다.MyApp 과 같은 줄 에 있 는 문자열 과 간단하게 일치 합 니 다.
adb logcat | grep MyApp
adb logcat | grep -i myapp # 。
adb logcat | grep --color=auto -i myapp # 。 grep 。
한 단계 올 라 가면 grep 의 정규 표현 식 을 사용 하여 일치 할 수 있 습 니 다.예 를 들 어 이전 예 는 한 줄 의 임의의 위치 에 있 는 MyApp 과 일치 합 니 다. tag 만 일치 하 는 것 으로 설정 할 수 있 습 니 다.기본 로그 출력 은 다음 과 같 습 니 다. 출력 형식 을 수정 한 표현 식 도 수정 해 야 합 니 다.
I/CacheService( 665): Preparing DiskCache for all thumbnails.
tag 는 한 줄 로 시작 하 는 세 번 째 문자 로 시작 하 는 것 을 알 수 있 습 니 다. 이 점 에 따라 표현 식 을 쓰 십시오.
adb logcat | grep "^..MyApp"
이 형식 에 따라 우선 순위 만 표시 하 는 log 를 설정 하고 줄 의 첫 번 째 문자 와 일치 하면 됩 니 다.예 를 들 어 Error 단계 tag 만 MyApp 의 출력 으로 표시 합 니 다.
adb logcat | grep "^E.MyApp"
물론 여러 개 와 일치 할 수도 있 습 니 다. | 여러 개의 일치 표현 식 을 분할 하고 전의 자 를 추가 해 야 합 니 다.예 를 들 어 tag 와 MyApp 과 MyActivity 의 출력 을 일치 시 키 려 면:
adb logcat | grep "^..MyApp\|^..MyActivity"
adb logcat | grep -E "^..MyApp|^..MyActivity" # egrep
2. 불필요 한 출력, 블랙리스트 걸 러 내기
아니면 grep 를 사용 하 시 겠 습 니까? 용법 도 위 와 같 습 니 다. - v 를 추가 하면 됩 니 다.예 를 들 어 tag 를 MyApp 과 MyActivity 의 출력 으로 걸 러 내 려 면:
adb logcat | grep -v "^..MyApp\|^..MyActivity"
adb logcat | grep -vE "^..MyApp|^..MyActivity" # egrep
3. 같은 프로 세 스 의 모든 출력 보이 기
한 프로그램 에 tag 가 여러 개 있 을 때 이 프로그램 (같은 PID) 의 모든 tag 를 출력 해 야 합 니 다.tag 필터 만 사용 하면 오류 정보 가 빠 질 수도 있 고 일반적인 오류 정보 도 프로그램 과 같은 PID 입 니 다.아니면 grep 를 통 해 이 루어 지 는 지, 사 고 는 가방 이름 에 따라 pid 번 호 를 찾 은 다음 에 pid 와 일치 하 는 것 입 니 다.셸 스 크 립 트 로 쓰 면 다음 과 같 습 니 다. 매개 변 수 는 프로그램의 자바 패키지 이름 (예 를 들 어 com. android. media) 입 니 다.
#!/bin/bash packageName=$1 pid=`adb shell ps | grep $packageName | awk '{print $2}'` adb logcat | grep --color=auto $pid
4. 지금부터 보이 기
logcat 에 캐 시 가 있 습 니 다. 현재 시작 하 는 log 만 보 려 면 이전 것 을 비 워 야 합 니 다.
adb logcat -c && adb logcat
5. 로그 파일 필터
로그 파일 을 분석 해 야 할 때 가 있 습 니 다. 로그 파일 을 걸 러 내 든 grep 를 사용 하 든.예 를 들 어 log 파일 은 my app. log 입 니 다. tag 와 my Activity 의 출력 과 일치 한 다음 new my app. log 로 출력 해 야 합 니 다.
cat myapp.log | grep "^..MyApp\|^..MyActivity" > newmyapp.log
Windows 에 서 는 Notepad + + 를 사용 하 는 것 을 추천 합 니 다. 무료 로 강력 한 메모 장 입 니 다. 정규 표현 식 으로 대 체 를 찾 을 수 있 습 니 다.일치 하 는 내용 을 강조 할 수도 있 고 필요 하지 않 은 내용 을 삭제 할 수도 있 습 니 다.
이상 의 기 교 는 주로 grep 를 사 용 했 습 니 다. 사실 logcat 자체 에 도 필터 기능 이 있 습 니 다. tag, 우선 순위 에 따라 log 를 걸 러 낼 수 있 습 니 다. 구체 적 으로 안 드 로 이 드 공식 문서 인 Reading and Writing Logs 를 참고 하 십시오.그래 픽 인터페이스 사용 을 좋아한다 면 Using DDMS 를 참고 하 세 요. DDMS 에 있 는 logcat 도 똑 같이 걸 러 낼 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.