Mac Console - Mensagens de registro específicas para colorir

2

Costumo usar o Mac Console para monitorar os registros do meu servidor da web. Esses logs são bastante detalhados e torna-se difícil percorrê-los para monitorar erros.

Cada mensagem no log tem um formato de [AAAA-MM-DD HH: MM: SS.sss] < INFO, WARN, ERROR > < Nome do Tópico >

Existe alguma maneira de definir o Console para codificar em cores as mensagens que possuem uma tag de Erro? Se não, qual é a maneira ideal de filtrar esses registros? Observe que muitas vezes é importante ver o que aconteceu imediatamente antes do erro.

    
por Ben Siver 12.02.2013 / 17:57

1 resposta

2

Você pode usar o Terminal e esta função de shell:

cless () 
{ 
   # less-like function that colors specified word
   # 'while read' reads every line and saves it to variable $REPLY
    while read; do
        # If line contains the word to highlight, grep with option --color...
        if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then
            echo $REPLY | grep --color=always $1;
        else
        # ... otherwise simply output the line
            echo $REPLY;
        fi;
    # continue until end of file, paging with 'less'
    done < $2 | less -R
}

São necessários dois argumentos, a palavra a ser destacada e o arquivo a ser analisado.

Para usá-lo, abra o Terminal em Aplicativos > Utilitários > Terminal e digite;

$ function cless { while read; do if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then echo $REPLY | grep --color=always $1; else echo $REPLY; fi; done < $2 | less -R; }
$ cless ERROR /path/to/my/logfile.log

Como no caso de less , use SPACE ou F para avançar e B para voltar. Se a palavra que você costuma procurar é ERROR, crie um alias:

$ alias cerror='cless ERROR'
$ cerror /path/to/my/logfile.log

Para carregar a função e o alias automaticamente ao iniciar o Terminal, adicione essas linhas ao arquivo ~/.bashrc :

function cless { while read; do if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then echo $REPLY | grep --color=always $1; else echo $REPLY; fi; done < $2 | less -R; }
alias cerror='cless ERROR'

e recarregue-o:

$ . ~/.bashrc

Se você deseja pesquisar sem distinção entre maiúsculas e minúsculas, substitua grep por grep -i (por exemplo, grep -c $1 se tornaria grep -i -c $1 ).

    
por 12.02.2013 / 21:26