Saída colorida em menos ao seguir um arquivo de log

3

Eu estou precisando de uma maneira de colorir minha menor saída ao ler um arquivo que está sendo constantemente adicionado.

O arquivo em perguntas é um log de contêiner de servlet de resina.

Minha "implementação" atual do esquema de cores funciona usando tail -F e sed para edição em cores em torno de palavras-chave. Eu tenho quatro palavras para colorir: INFO, WARN, ERROR, DEBUG , uma das quais ocorre uma vez por linha.

Eu tentei usar a variável de ambiente LESSOPEN , mas parece que não consigo continuar lendo o log. O arquivo não está de cauda depois de ter sido aberto.

Tenho muito pouco controle sobre o servidor e realmente não consigo instalar nada além dos meus próprios scripts em minha pasta pessoal, portanto, não há pacotes. O servidor em questão é um RHEL 6.4.

O problema é que less não continua lendo o arquivo. Existe uma maneira de ajustar o log continuamente usando a variável de ambiente LESSOPEN , ou eu preciso de algumas ferramentas mais complexas?

    
por Jes 27.03.2013 / 13:45

4 respostas

3

O problema está nos pipes no linux. CTRL c fecha o canal e less não pode reabrir o canal.

A solução que achei viável foi redirecionar o log colorido para um arquivo e ler esse arquivo com less . Um arquivo pode ser seguido após um CTRL-c e, portanto, faço o seguinte:

tail -F -c +1 | colorize > /tmp/logfilename &
less -Sr /tmp/logfilename

Funciona como um encanto.

    
por 02.04.2013 / 13:07
1

Eu vejo duas perguntas aqui:

  • Como faço para colorir a saída em menos
  • Como faço para me comportar menos como o tail -f

Eu não posso responder ao primeiro, embora LESSOPEN pareça um bom caminho. O segundo é fácil: inicie menos como less +F ou pressione Shift F se menos já estiver rodando.

    
por 29.03.2013 / 00:08
1

Você pode executar tail -f em um buffer de shell do Emacs e deixe o Emacs fazer a coloração.

O Hi Lock permite que você destaque rapidamente as palavras que correspondem a um regexp. Há uma maneira grosseira de salvar padrões de realce em um arquivo, mas não será conveniente quando o arquivo for realmente a saída de um comando. Provavelmente, é melhor escrever um modo importante modo principal com bloqueio de fontes palavras-chave .

    
por 30.03.2013 / 02:33
0

Eu uso o vim para simular a cor less . Ele tem uma macro less e usa o esquema de cores Vim.

Eu adicionei isso ao meu bashrc:

alias cless='/usr/share/vim/vim73/macros/less.sh'

Para o tailing / following, você precisará de algum plugin Vim que permita o acompanhamento. Talvez tente o plugin Bundle .

    
por 27.03.2013 / 16:46