다음과 같은 메시지가있는 서버 로그 파일의 출력을 조정할 수 있기를 원합니다.
INFO
SEVERE
등이 있고이면 SEVERE
줄을 빨간색으로 표시하십시오. INFO
녹색 인 경우 tail
이 작업을 수행하는 데 도움이 되는 명령에 어떤 종류의 별칭을 설정할 수 있습니까?
답변
multitail을 사용해보십시오 . 이것은 übergeneralization입니다 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 -f
모든 구현이 작업을 수행 할 경우 표준 출력 파이프 경우에도, 나도 몰라 지체없이 표준 출력을 플러시.
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
.
또 다른 가능성은 Emacs 쉘 버퍼 tail -f
에서 실행 하고 Emacs의 구문 색상 지정 기능을 사용하는 것입니다.
답변
답변
ccze 를 보셨습니까 ? 옵션을 사용 -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
일반 텍스트 색상을 복원합니다.
답변
답변
정규 표현식을 기반으로 선을 채색 하는 rainbow 을 사용할 수 있습니다 .
rainbow --red='SEVERE.*' --green='INFO.*' tail -f my-file.log
또한 Tomcat 로그 와 같이 사전 정의 된 구성 이 번들로 제공됩니다 .
rainbow --config=tomcat tail -f my-file.log
(면책 조항 : 나는 저자입니다)
답변
colortail 을 사용할 수 있습니다 :
colortail -f /var/log/messages
답변
또한 일치하는 정규 표현식 하나만 찾으려면 GNU grep --color
이 작동 tail
합니다. 출력을 파이프로 연결하면됩니다.