Cauda colorida dos logs do Apache

Respostas:

10

Estou usando o multitail para monitorar logs, que inclui a coloração e o monitoramento de vários arquivos de log mesclados ou no Windows. De uma chance.

onik
fonte
9

Qualquer motivo pelo qual você não pode usar algo como isto:

tail -f FILE | grep --color=always KEYWORD

fonte: commandlinefu.com

JamesBarnett
fonte
Você testou? A TI não produz nada para mim.
SabreWolfy
Isso filtra a saída também, portanto, qualquer linha sem KEYWORDserá ignorada.
Michal Mau
O OP parece indicar que ele está procurando uma palavra-chave. A menos que o arquivo seja de natureza multilinha (que geralmente não são os logs do apache), essa resposta é suficiente.
Garrett
4

Encontrado: http://fixunix.com/unix/83044-tail-color.html

tail -f file | perl -pe 's/keyword/\e[1;31;43m$&\e[0m/g'

Isso funciona apenas em terminais ANSI, mas todos os outros se tornaram praticamente extintos. \ e [...] é a sequência de escape ANSI SGR "selecionar representação gráfica". O "..." pode ser substituído por alguns números inteiros separados por ponto e vírgula, com o significado:

0: todos os atributos desativados 1: negrito 31: primeiro plano vermelho 43: fundo amarelo

"keyword", é claro, pode ser qualquer expressão regular perl:

(foo | bar) realce as strings foo e bar \ b ((foo | bar) \ b realce as palavras foo e bar. \ b ((foo | bar) \ b. realce toda a linha que contém as palavras foo ou bar

Ou, da maneira mais fácil, basta instalar colortailEstá provavelmente no seu repositório favorito (dag for CentOS)

http://developwithstyle.com/articles/2010/04/20/tail-your-logs-with-a-touch-of-color.html

http://joakimandersson.se/projects/colortail/

Grizly
fonte
Sim, multitail é melhor
Grizly
3

Eu uso um pequeno script com combinações grep para obter algumas cores:

#!/bin/bash
shopt -s expand_aliases

alias grey-grep="GREP_COLOR='1;30' grep -E --color=always --line-buffered"
alias red-grep="GREP_COLOR='1;31' grep -E --color=always --line-buffered"
alias green-grep="GREP_COLOR='1;32' grep -E --color=always --line-buffered"
alias yellow-grep="GREP_COLOR='1;33' grep -E --color=always --line-buffered"
alias cyan-grep="GREP_COLOR='1;36' grep -E --color=always --line-buffered"

tail -1000f /var/log/apache2/error.log | grey-grep ".*PerformanceLogger.*|$" | cyan-grep "INFO|$" | yellow-grep "WARN|$" | red-grep "[ERROR].*|[FATAL].*|$" | green-grep "***|$"

O ponto é que todo grep encadeado adiciona uma cor diferente. Portanto, o resultado é algo como: Log do Apache com algumas cores

DavidEG
fonte
0

Plugue sem vergonha: escrevi uma ferramenta chamada TxtStyle que faz algo semelhante às opções mencionadas anteriormente. Você pode executá-lo da seguinte maneira:

tail -f /var/log/syslog | txts --regex '\d+'

Você também pode definir estilos nomeados no arquivo de configuração ( ~/.txts.conf) e usá-lo da seguinte maneira:

ifconfig | txts --name ifconfig

(o ifconfigestilo é definido imediatamente)

armandino
fonte
0

Há um recurso que eu não vi nesses colorizadores - destaque os tempos de resposta (maior tempo -> cores mais alarmantes). O suporte de 256 cores em emuladores de terminal modernos pode ser útil aqui.

sendmoreinfo
fonte
0

Outro truque útil do grep para mostrar toda a saída, mas colorir a KEYWORD selecionada é:

tail -f FILE | grep --color=always -E "$|REGEXP"
Felipe Alvarez
fonte