Ist es möglich, anklickbare Klassennamen in der Konsolenausgabe in IntelliJ zu haben?

8

Wenn Sie einen Server innerhalb von IntelliJ ausführen, können Sie die Konsolenausgabe im Fenster unten auf dem Bildschirm sehen.

Gibt es eine Möglichkeit, die Ausgabe so zu formatieren, dass IntelliJ Klassennamen erkennt und anklickbar macht? Wenn ich dann einen Klassennamen in der Serverausgabe sehe, könnte ich darauf klicken und direkt dorthin gehen.

Danke:)

    
Rachel 28.10.2011, 14:47
quelle

4 Antworten

5

Es gibt. Aus der Online-Hilfe Ссылка

entnommen
  

Wenn Sie Logging-Tools von Drittanbietern verwenden, möchten Sie möglicherweise die   Nachrichtenausgabe, die eine Standardverknüpfung mit dem Quellcode nachahmt   für Stacktrace-Linie (um   . (:)).   Dazu sollten Sie Ihrer log.xml ein bestimmtes Konvertierungsmuster hinzufügen   Konfigurationsdatei. Zum Beispiel in einem log4j Conversion Pattern dies   wäre

%Vor%

Allerdings ist die Ausgabe bei vollständig qualifizierten Namen, Methodennamen usw. ziemlich hässlich.

    
frant.hartm 16.02.2013, 17:55
quelle
18

Ab IntelliJ 14 und Alternative zum Durchgraben von IntelliJ-Einstellungen ergab etwas Versuch und Irrtum, dass irgendetwas mit dem Muster

%Vor%

, dem mindestens ein . in der Konsole vorausgeht, wird in eine Dateiverknüpfung umgewandelt, wenn eine Datei mit diesem Namen bekannt ist, z. .(Whatever.java:55) , im Arbeitsbereich ausgenommen die Bibliotheken.

Ich verwende Logback. Also zumindest in meiner logback.xml, um Links zu meinen Klassen zu bekommen, habe ich in mein Nachrichtenmuster aufgenommen

%Vor%
  • .\( \) - & gt; Vor dem Dateinamen muss ein Punkt stehen: Linienmuster und der Dateiname: Linienmuster eingeschlossen in Klammern. Logback erfordert in diesem Fall die Existenz von literalen Klammern.
  • %class{0} - & gt; Nur der Klassenname ohne ein Paket
  • .java - & gt; Damit entspricht es dem vollständigen Dateinamen
  • :%line - & gt; Ist die Protokollierungszeile des Codes
  • ?

Tatsächlich habe ich andere Dinge, die immer mindestens ein . vor dem (filename:line) enthalten, also wird es genauso gut von IntelliJ übernommen.

%Vor%     
Jason Dunkelberger 26.04.2015 17:51
quelle
2

Sie können Ihre eigenen Ausgabefilter definieren oder Dateipfade mit getrennten Zeilennummern drucken durch einen Doppelpunkt, entweder vollständige Pfade oder Pfade relativ zu den Wurzeln der Projektquelle.

Der benutzerdefinierte Ausgabefilter kann die folgenden Variablen verwenden: $FILE_PATH$ , $LINE$ .

    
CrazyCoder 28.10.2011 15:08
quelle
0

Damit Dinge wirklich funktionieren, müssen Sie die vollständige Stacktrace-Notation beachten. Wie es nicht genug ist, einfach einen Punkt "." vor den Klammern. Wenn Sie zwei Klassen mit demselben Namen aber unterschiedlichen Paketen haben, wählt IntelliJ die erste, die es findet. Um dies auch in diesem Fall KORREKT zu erreichen, müssen Sie

schreiben

vollqualifizierterKlassenname + "." + Methodenname + "(" + einfacherKlassenname + ".java:" + Linenummer + ")"

Wenn Sie nicht wissen, dass die Zeilennummer mit ": 1" für mich funktioniert hat

    
Thomas Eitzenberger 18.01.2018 11:43
quelle

Tags und Links