Colorize logs no console do Eclipse

105

Existe uma maneira de colorir partes de logs no console do eclipse. Eu sei que poderia enviar fluxos de erro e padrão e colori-los de forma diferente, mas estou procurando algo nas linhas de códigos de escape ANSI (ou qualquer outro, HTML?) Onde eu poderia incorporar as cores na string para colori-la no Histórico.

Com certeza ajudaria a destacar as partes importantes sem recorrer a um layout estranho, em vez de manter o layout nas configurações do log4j

aqui está um exemplo do que estou procurando:

[INFO] A grade está completa ....... falso

onde as partes em negrito seriam em azul, essa coloração pode ser controlada pelo aplicativo até certo ponto. assim (as tags são conceituais e arbitrárias, mas essa é a ideia):

log.info (String.format ("A grade está completa ....... <blue>% s </blue>", isComplete));


Em uma nota mais geral, é a capacidade de incorporar meta informações nos logs para ajudar na apresentação desses logs. Da mesma forma que marcamos o conteúdo das páginas da web para ajudar na apresentação das informações por CSS.

Newtopian
fonte
você pode usar MulticolorLayout de jcabi-log , conforme explicado aqui: stackoverflow.com/questions/7848325
yegor256
Interresting! ANSI-Coloring, eu deveria dar uma olhada nisso na próxima vez que eu acionar meu Eclipse! obrigado. Quanto ao JCabi, gosto de contextualizar meus registradores e raramente isso se ajusta ao nome da classe, então duvido que um wrapper estático resolva o problema. Freqüentemente, preciso definir dinamicamente o nome do logger para a instância, pois isso me dá um uso muito mais eficiente das informações de log.
Newtopian

Respostas:

76

Experimente com este plug-in do Eclipse: Console Grep

[Atualização] :
Conforme apontado pelos comentadores: Ao instalar o Grep Console na última versão atual do Eclipse, você precisa desmarcar 'Agrupar itens por categoria' na caixa de diálogo Instalar para ver os itens disponíveis.
Como apontado por @Line, o plugin agora pode ser facilmente instalado através do Eclipse Marketplace novamente sem alterar nenhuma opção.

[Atualização 2] :
Conforme apontado por @azdev , para obter o destaque adequado:

Inserir apenas strings literais não funciona. Para fazer com que uma linha seja colorida, você deve colocar a string em .* ambos os lados, assim: .*ERROR.*

Benjamin Seiller
fonte
3
O plugin não parece funcionar com o Eclipse (Helios) mais recente.
Sorin
1
correção sobre o plug-in não estar sendo desenvolvido ativamente, fiz algumas perguntas ao criador e obtive respostas em poucas horas! Quanto aos padrões, o plug-in usa expressões regulares, portanto, alguns ajustes e bagunças são esperados ao configurá-lo. Eu recomendaria instalar um plugin de expressão regular para tentar copiar os extratos colados do console. Uma vez configurado, ele funciona
perfeitamente
2
Caso alguém esteja procurando a documentação do Console Grep: marian.schedenig.name/wp-content/static/grepconsole_userguide
Danny Bullis
1
Além disso, no caso de alguém precisar de ajuda com os padrões regex (este link de ajuda também está incluído na caixa de diálogo Grep Console no eclipse): docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. html
Danny Bullis
1
Considere remover a primeira [atualização] - agora ela pode ser facilmente instalada através do Marketplace.
Linha
18

Na verdade, o plugin do Console ANSI adiciona suporte ao código de escape ANSI ao console Eclipse. No momento, há uma limitação, por meio da qual os códigos de escape que abrangem várias linhas vazam incorretamente para outras linhas ao rolar, consulte a edição nº 3 .

Caso contrário, algum plugin de visualização de terminal, conforme explicado nesta outra questão, pode ser uma opção para alguns.

Fmjrey
fonte
Usei a página mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console . Suporte ansi perfeitamente simples no console!
tutejszy
9

Como já apontado por @Benjamin Grep Console é uma ótima maneira de colorir a saída no Console.

Eu fiz um pequeno vídeo para demonstrar como funcionava e tive uma resposta do Criador do plugin Grep Console. Ele mencionou que o console Grep 3 foi lançado.

Transmissão de tela : http://www.youtube.com/watch?v=fXjgGZAxToc

Atualizar sites

Grep Console 2
http://eclipse.musgit.com
(requer Eclipse 3.4 (Ganymede) ou superior e Java 5.0 ou superior)

Grep Console 3
http://eclipse.schedenig.name
(requer Eclipse 3.7 (Indigo) ou superior e Java 6.0 ou superior)

Ashutosh Jindal
fonte
6

Que tal usar o Logback e seu conversor de propriedades e registrar tudo no log4j, que pode permitir que você veja os diferentes níveis em cores diferentes.

Boa sorte!

EDIT : o plugin eclipse

David Santamaria
fonte
4

Usamos o plug-in Ganymede Eclipse onde trabalho, e ele funciona bem.

http://sourceforge.net/projects/ganymede/

"Um plugin log4j para Eclipse que funciona de maneira semelhante à motosserra (SocketServer). Inclui cor, filtragem, informações detalhadas e salva configurações."

Neal Swearer
fonte
Este é um ótimo plugin, pena que eles não têm um para europa :(
branchgabriel
15
Muito confuso ter um plugin do Eclipse chamado "ganymede".
JesperE
2

Leia sobre o ponto de extensão org.eclipse.ui.console.consolePatternMatchListeners .

thSoft
fonte
1
essa é a maneira certa de fazer isso, mas acho que o autor da postagem esperava que alguém tivesse feito isso para sequências de escape ansi ou códigos de cores html.
aepurniet
1

Você pode considerar experimentar o Apache Chainsaw ( http://logging.apache.org/chainsaw/index.html ) se já estiver trabalhando com o log4j. Permite definir cores e filtro e trabalhar com configuração (quase) zero.

GHad
fonte
Eu tentei há muito tempo e foi muito útil, embora eu não saiba se pode me ajudar neste caso. Espero que me permita mais granularidade na forma como as linhas são coloridas, mas quero mais ... Vou tentar amanhã.
Newtopian
1

Já usei esse plugin antes, ele permite colorir linhas do log com base em regex personalizado.

Por exemplo, quando eu o estava usando, todas as linhas com as palavras erro seriam vermelhas, aviso seria laranja, informações seriam azuis ... etc.

Como é regex, você pode fazer qualquer coisa. Configure-o para tornar a linha verde sempre que começar com ">>>" e, em seguida, prefixe a string da sua mensagem com ">>>".

http://sourceforge.net/projects/logfiletools


fonte
1

Você pode usar ANSI Escape no plugin do console para Eclipse. Você precisará disso para que o console do Eclipse possa interpretar os códigos ANSI Escape. Instale-o e reinicie o Eclipse . Em seguida, você pode usar códigos de cores ANSI para escrever em uma determinada cor. Aqui está uma lista de códigos de cores ANSI de outra resposta stackoverflow. Então você pode fazer isso:

public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_RED = "\u001B[31m";

public static void main(String[] args) {
    System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);
}

Usei isso para criar um formatador personalizado para o manipulador do console, de modo que ele mostre os logs do Logger em diferentes níveis com cores diferentes (logs de INFO em ciano, logs de AVISO em amarelo e logs SEVERE em vermelho). Veja como eu fiz , se você estiver interessado.

jajube
fonte