Eu uso stderred e descobri que é uma boa solução. Como suas anotações readme :
Stderred engancha em write () e uma família de funções de fluxo (fwrite, fprintf, error ...) da libc para colorir toda a saída stderr que vai para o terminal, tornando-a distinguível da stdout. Basicamente, ele envolve o texto que vai para o arquivo com o descritor "2", com códigos de escape ANSI apropriados, tornando o texto vermelho.
Ele é implementado como uma biblioteca compartilhada e não requer a recompilação de binários existentes, graças ao recurso de pré-carregamento / inserção de vinculadores dinâmicos.
É suportado no Linux (com LD_PRELOAD), FreeBSD (também LD_PRELOAD) e OSX (com DYLD_INSERT_LIBRARIES).
É fácil compilar, mas você precisa compilá-lo a partir do código-fonte seguindo as instruções do site do Github :
sudo apt-get install build-essential git cmake
Então
git clone git://github.com/sickill/stderred.git
cd stderred
Então
make
A parte mais importante é adicionar a linha apropriada ao seu .bashrc
; você deve vincular ao arquivo libstderred.so
no diretório de compilação; você deve usar o caminho absoluto onde o diretório de construção é (/ home / mike / src / stderred / build). Adicionei o seguinte ao meu .bashrc
:
export LD_PRELOAD="/home/mike/src/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
Obviamente, quando você não quiser mais usá-lo, remova a linha acima do seu .bashrc
e reinicie o terminal.
Os resultados, testados em arquivos inexistentes (obviamente, não funcionarão quando sudo
for usado, pois o .bashrc
do usuário não será lido quando o ambiente diferente for definido):
(A propósito, não ativa o meu duke @ nukem como vermelho; já )