GEDOPLAN
Quarkus

Quarkus-Tests mit Logging

Quarkus
quarkus logo horizontal default

Wenn man Tests für Quarkus-Anwendungen schreibt, bedient man sich in der Regel des Unit Test Frameworks JUnit und der Extension @QuarkusTest.

Leider verwendet JUnit für sein internes Logging JUL (d. h. die Klassen aus der Standardbibliothek im Paket java.util.logging), was meiner Meinung nach nicht gerade das beste Logging-System ist. Das von Quarkus angebotene JBoss Logging hat ein deutlich leistungsfähigeres API und verfügt schon im Default über ein besseres Ausgabeformat. Darüber hinaus kann man dieses Logging Backend mit Quarkus Properties konfigurieren. Es ist also wünschenswert, dass der Test Code sein Protokoll auch nach JBoss Logging dirigiert.

Dies gelingt durch Setzen der System Property java.util.logging.manager auf den Wert org.jboss.logmanager.LogManager. Aber Achtung: Das muss vor der ersten Log-Ausgabe geschehen, da man den Logging Manager von JUL später nicht mehr umschalten kann. In Maven-Projekten setzt man die Property am besten in der Konfiguration der Test-Plugins:

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
          </systemPropertyVariables>
        </configuration>

(analog für das Failsafe Plugin)

Für die Ausführung der Tests auf der Kommandozeile (mvn test ...) oder in IntelliJ IDEA war’s das: Die Log-Ausgaben erscheinen nun im gewohnten JBoss-Logging-Format.

Wer als IDE Visual Studio Code benutzt, muss etwas mehr tun, da die Maven-Einstellung von der IDE nicht berücksichtigt wird (Stand Oktober 2025). Man kann die System Property hier in der Datei .vscode/settings.json setzen (Erreichbar über Ctrl-P -> Preferences: Open Workspace Settings (JSON)):

{
  ...,
  "java.test.config": {"vmArgs": ["-Djava.util.logging.manager=org.jboss.logmanager.LogManager"]}
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Sind EJBs böse?

In der letzten Zeit findet man diverse Veröffentlichungen oder auch Vorträge auf Usergroups und Konferenzen, die scheinbar das eine Ziel…
IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Bean Validation auf Collections

Die zum Java-EE-6-Umfang gehörende Spezifikation Bean Validation (JSR 303) stellt einen wesentlichen Schritt zur einheitlichen Validierung von Geschäftsdaten dar. Wie…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!