Terminal 컬러adb logcat

3707 단어 Android

하고 싶은 일


리눅스의 테미널에서도 안드로이드 스튜디오와 같은 로고 레벨마다 색깔이 있는adb logcat을 실현하고 싶습니다.
IDE의logcat은 영역이 작고 조작도 어려워서 다른 윈도우의Terminal에서 같은 일을 하려고 합니다.
2010년쯤에 선배님이 가르쳐주신 제품으로 정하기 전에 계속 쓰던 스크립트예요.

Code


shell script


logcat.sh
#!/bin/sh

while true; do
    adb logcat -v time | logcat_color.awk
    echo "#### DEVICE DISCONNECTED !"
done
logcat 출력adb logcatcolor.계속해서 awk한테 맡겨.
USB가 끊기면 프롬프트가 표시되어 연결 대기 상태가 됩니다.
Ctrl+C로 끝냅니다.

awk


logcat_color.awk
#!/usr/bin/awk -f

# adb logcat -v time
/^.* V\/.*$/ { print "\033[0m" $0 }
/^.* D\/.*$/ { print "\033[0;34m" $0 "\033[0m" }
/^.* I\/.*$/ { print "\033[0;32m" $0 "\033[0m" }
/^.* W\/.*$/ { print "\033[0;31m" $0 "\033[0m" }
/^.* E\/.*$/ { print "\033[1;31m" $0 "\033[0m" }
Logo Level(V, D, I, W, E)을 판정하고 print를 위해 Text Style을 지정합니다.
//사이는 awk의 정규 표현식으로, 다음 구문을 사용하여 각 Logo Level을 판정합니다.
"^"     : 行頭
".*"    : 何かの文字が復数個
" E\/"  : " E/" の存在判定
".*"    : 何かの文字が複数個
"$"     : 文字列終端
위의 예는adb logcat-v time의 출력용입니다.logcat의 옵션은 문장을 어떻게 판단하는지 맞춤형으로 만들어야 합니다.
Terminal에 실제로 표시되는 섹션은 각 Logo Level에서 다음 스타일과 color를 지정합니다.
ESC[<色コード>m  : これ以降のstyleとcolor指定

print "\033[<色コード変える>m" $0 "\033[<色コード戻す>m"
("\033" = ESC)

\033[0m     : Default
\033[0;34m  : Blue
\033[0;32m  : Green
\033[0;31m  : Red
\033[1;31m  : Bold Red

Logicat 출력


Path를 통해 위의 두 파일을 Terminal
$ logcat.sh
의 경우 출력은 다음과 같습니다. 각 Logo Level마다 다른 색상이 있어 이해하기 쉽습니다.
Error Level로 개발 중인 일시적 로그 등을 출력해 주변 로그 확인에 맞춰 출력하는 등 편리하다.

///---

좋은 웹페이지 즐겨찾기