Färben Sie Protokolle in der Eclipse-Konsole ein

105

Gibt es eine Möglichkeit, Teile von Protokollen in der Eclipse-Konsole einzufärben? Ich weiß, dass ich Fehler- und Standard-Streams senden und sie anders färben könnte, aber ich sehe eher in den Zeilen von ANSI-Escape-Codes (oder einem anderen, HTML?), Wo ich die Farben in die Zeichenfolge einbetten könnte, um sie in der Zeichenfolge zu färben Protokolle.

Es würde sicher helfen, die wichtigen Teile hervorzuheben, ohne auf ein seltsames Layout zurückzugreifen, sondern das Layout auf die log4j-Setups zu beschränken

Hier ist ein Beispiel für das, wonach ich suche:

[INFO] Das Raster ist vollständig ....... false

Wo die fetten Teile blau wären, kann diese Färbung durch die Anwendung in gewissem Umfang gesteuert werden. wie so (Tags sind konzeptionell und willkürlich, aber Sie bekommen die Idee):

log.info (String.format ("Das Raster ist vollständig ....... <blue>% s </blue>", isComplete));


Allgemeiner ausgedrückt ist es die Möglichkeit, Metainformationen in die Protokolle einzubetten, um die Darstellung dieser Protokolle zu erleichtern. Ähnlich wie wir Webseiteninhalte markieren, um die Präsentation der Informationen durch CSS zu erleichtern.

Newtopian
quelle
Sie können MulticolorLayout aus jcabi-log verwenden , wie hier erläutert: stackoverflow.com/questions/7848325
yegor256
Interessant! ANSI-Coloring, ich sollte mir das nächste Mal ansehen, wenn ich meine Eclipse starte! Vielen Dank. Was den JCabi betrifft, mag ich es, meine Logger zu kontextualisieren, und selten passt das zum Klassennamen, so dass ich bezweifle, dass ein statischer Wrapper den Trick machen würde. Ich muss häufig den Namen des Protokollierers dynamisch auf die Instanz setzen, da ich die Protokollierungsinformationen dadurch viel effizienter nutzen kann.
Newtopian

Antworten:

76

Probieren Sie dieses Eclipse Plugin: Grep Console aus

[Update] :
Wie von Kommentatoren hervorgehoben: Wenn Sie Grep Console in der aktuell letzten Version von Eclipse installieren, müssen Sie im Dialogfeld "Installieren" die Option "Elemente nach Kategorie gruppieren" deaktivieren, um die verfügbaren Elemente anzuzeigen.
Wie von @Line hervorgehoben, kann das Plugin jetzt problemlos wieder über den Eclipse Marketplace installiert werden, ohne dass Optionen geändert werden müssen.

[Update 2] :
Wie von @azdev hervorgehoben , um eine korrekte Hervorhebung zu erhalten:

Die Eingabe von nur wörtlichen Zeichenfolgen funktioniert nicht. Um eine farbige Linie zu erhalten, müssen Sie die Zeichenfolge .* auf beiden Seiten wie folgt einschließen : .*ERROR.*

Benjamin Seiller
quelle
3
Das Plugin funktioniert nicht mit dem neuesten Eclipse (Helios).
Sorin
1
Korrektur über das Plugin, das nicht aktiv entwickelt wurde, ich stellte dem Ersteller ein paar Fragen und erhielt innerhalb weniger Stunden Antworten! Was die Muster betrifft, nimmt das Plugin reguläre Ausdrücke an, so dass bei der Konfiguration einige Optimierungen und Fehler erwartet werden. Ich würde empfehlen, ein Plugin für reguläre Ausdrücke zu installieren, um zu versuchen, eingefügte Auszüge von der Konsole zu kopieren. Einmal konfiguriert, obwohl es wie ein Zauber funktioniert
Newtopian
2
Falls jemand nach der Dokumentation für die Grep-Konsole sucht
Danny Bullis
1
Falls jemand Hilfe bei den Regex-Mustern benötigt (dieser Hilfelink ist auch im Grep Console-Dialogfeld in Eclipse enthalten): docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. html
Danny Bullis
1
Bitte ziehen Sie in Betracht, zuerst [Update] zu entfernen - jetzt kann es einfach über den Marktplatz installiert werden.
Linie
18

Tatsächlich fügt das ANSI Console-Plugin der Eclipse-Konsole ANSI-Escape-Code-Unterstützung hinzu. Gegenwärtig gibt es jedoch eine Einschränkung, wonach Escape-Codes, die sich über mehrere Zeilen erstrecken, beim Scrollen falsch auf andere Zeilen übertragen werden (siehe Problem 3) .

Andernfalls kann ein Plugin für die Terminalansicht, wie in dieser anderen Frage erläutert, für einige eine Option sein.

fmjrey
quelle
Ich habe die Webseite mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console verwendet . Perfekt einfache Ansi-Unterstützung in der Konsole!
Tutejszy
9

Wie bereits von @Benjamin Grep Console hervorgehoben, ist dies eine großartige Möglichkeit, die Ausgabe in der Konsole einzufärben.

Ich hatte ein kurzes Video gemacht, um zu demonstrieren, wie es funktioniert, und vom Ersteller des Grep Console-Plugins gehört. Er erwähnte, dass Grep Console 3 veröffentlicht wurde.

Screen Cast : http://www.youtube.com/watch?v=fXjgGZAxToc

Websites aktualisieren

Grep Console 2
http://eclipse.musgit.com
(erfordert Eclipse 3.4 (Ganymede) oder höher und Java 5.0 oder höher)

Grep Console 3
http://eclipse.schedenig.name
(erfordert Eclipse 3.7 (Indigo) oder höher und Java 6.0 oder höher)

Ashutosh Jindal
quelle
6

Was ist mit der Verwendung von Logback und seinem Eigenschaftskonverter und der Protokollierung von allem in log4j, damit Sie möglicherweise die unterschiedlichen Ebenen für unterschiedliche Farben sehen können ?

Viel Glück!

EDIT : das Eclipse- Plugin

David Santamaria
quelle
4

Wir verwenden das Ganymede Eclipse-Plugin, in dem ich arbeite, und es funktioniert gut.

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

"Ein log4j-Plugin für Eclipse, das ähnlich wie eine Kettensäge (SocketServer) funktioniert. Enthält Farbe, Filterung, detaillierte Informationen und speichert Einstellungen."

Neal Swearer
quelle
Dies ist ein tolles Plugin, schade, dass sie keines für
Europa
15
Sehr verwirrend, ein Eclipse-Plugin namens "ganymede" zu haben.
JesperE
2

Lesen Sie mehr über den Erweiterungspunkt org.eclipse.ui.console.consolePatternMatchListeners .

thSoft
quelle
1
Das ist der richtige Weg, aber ich glaube, das Poster hatte gehofft, jemand hätte dies für Ansi-Escape-Sequenzen oder HTML-Farbcodes getan.
Aepurniet
1

Sie können Apache Chainsaw ( http://logging.apache.org/chainsaw/index.html ) ausprobieren, wenn Sie bereits mit log4j arbeiten. Hiermit können Sie Farben und Muster definieren und mit einer Konfiguration (fast) Null arbeiten.

GHad
quelle
Ich habe es vor langer Zeit versucht, es war sehr hilfreich, obwohl ich nicht weiß, ob es mir in diesem Fall helfen kann. Ich erwarte, dass es mir mehr Granularität bei der Farbgebung von Zeilen ermöglicht, aber ich möchte mehr ... Ich werde es morgen versuchen.
Newtopian
1

Ich habe dieses Plugin bereits verwendet. Mit ihm können Sie Zeilen des Protokolls basierend auf benutzerdefinierten regulären Ausdrücken färben.

Wenn ich es zum Beispiel benutzte, waren alle Zeilen mit den Worten Fehler rot, Warnung war orange, Info war blau ... usw.

Da es Regex ist, können Sie alles tun. Richten Sie es so ein, dass die Linie grün wird, wenn sie mit ">>>" beginnt, und stellen Sie dann Ihre Nachrichtenzeichenfolge mit ">>>" voran.

http://sourceforge.net/projects/logfiletools


quelle
1

Sie können das ANSI Escape in Console-Plugin für Eclipse verwenden. Sie benötigen dies, damit die Eclipse-Konsole ANSI-Escape-Codes interpretieren kann. Installieren Sie es und starten Sie Eclipse neu . Dann können Sie ANSI-Farbcodes verwenden, um in einer bestimmten Farbe zu schreiben. Hier ist eine Liste der ANSI- Farbcodes aus einer anderen Stackoverflow-Antwort. Dann können Sie dies tun:

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);
}

Ich habe dies verwendet, um einen benutzerdefinierten Formatierer für den Konsolenhandler zu erstellen, damit Protokolle von Logger in verschiedenen Ebenen mit unterschiedlichen Farben angezeigt werden (INFO-Protokolle in Cyan, WARNING-Protokolle in Gelb und SEVERE-Protokolle in Rot). Hier ist, wie ich es gemacht habe , wenn Sie interessiert sind.

Jajube
quelle