tail -f 표시 컬러 출력을 만드는 방법

tail -f 표시 컬러 출력을 만드는 방법

다음과 같은 메시지가 포함된 서버 로그 파일의 출력을 추적할 수 있기를 원합니다.

INFO
SEVERE

그런 다음, 그렇다면 SEVERE행을 빨간색으로 표시하고, 그렇다면 INFO녹색으로 표시합니다. 이 작업을 수행하는 데 도움이 되도록 명령에 어떤 별칭을 설정할 수 있습니까 tail?

답변1

시험해 보세요다중 꼬리1. 이것은 권리의 초일반화이다 tail -f. 별도의 창에서 여러 파일을 보고, 내용에 따라 줄을 강조 표시하는 등의 작업을 할 수 있습니다.

multitail -c /path/to/log

색상은 구성 가능합니다. 기본 색 구성표가 적합하지 않은 경우 구성 파일에 직접 작성하세요. 예를 들어, multitail -cS amir_log /path/to/log다음 명령을 사용하여 호출합니다 ~/.multitailrc.

colorscheme:amir_log
cs_re:green:INFO
cs_re:red:SEVERE

서버가 비-설치가 불편한 경우 또 다른 해결책기준tail -f색상 선택 제어 시퀀스를 추가하기 위해 sed 또는 awk와 함께 사용하는 도구입니다 . 이를 위해서는 tail -fstdout이 파이프인 경우에도 stdout을 즉시 플러시해야 합니다. 모든 구현이 이를 수행하는지 여부는 알 수 없습니다.

tail -f /path/to/log | awk '
  /INFO/ {print "\033[32m" $0 "\033[39m"}
  /SEVERE/ {print "\033[31m" $0 "\033[39m"}
'

또는sed

tail -f /path/to/log | sed --unbuffered \
    -e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' \
    -e 's/\(.*SEVERE.*\)/\o033[31m\1\o033[39m/'

sed가 GNU sed가 아닌 경우 \o033리터럴 이스케이프 문자로 바꾸고 --unbuffered.

또 다른 가능성은 tail -f실행하는 것입니다이맥스쉘 버퍼를 사용하고 Emacs의 구문 색상 지정 기능을 사용하십시오.

¹역사적인 웹사이트2021년 초에 사라집니다. 최신 버전은 다음과 같은 많은 배포판에서 계속 사용할 수 있습니다.아치,더반.

답변2

GRC, 유니버설 셰이더는 꽤 멋지다.

apt-get install grc

그냥 해

grc tail -f /var/log/apache2/error.log

즐기다!

너도 찾을 거야GitHub.

답변3

본 적 있나요?니시자와? -c옵션을 사용하거나 구성 파일에서 직접 특정 키워드의 기본 색상을 사용자 정의 할 수 있습니다 . 썬팅 후 화면이 선명해지면 옵션을 이용하셔야 합니다 -A.

편집하다:

전체 선을 빨간색으로 표시하려면 다음을 시도해 볼 수도 있습니다.

$ tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g'

\e[1;31m빨간색을 줄 것이다. 노란색을 원하면 저것을 사용 \e[1;33m하고 녹색을 원하면 저것을 사용하세요 \e[1;32m. \e[0m일반 텍스트 색상을 복원합니다 .

답변4

당신은 그것을 사용할 수 있습니다무지개, 정규식을 기반으로 선 색상을 지정합니다.

rainbow --red='SEVERE.*' --green='INFO.*' tail -f my-file.log

그것도 번들로사전 정의된 구성, 예를 들어 Tomcat 로그:

rainbow --config=tomcat tail -f my-file.log

(면책조항: 저는 저자입니다)

관련 정보