Überwachung und Protokollierung von Java-Anwendungen: Der vollständige Leitfaden 2024

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Läuft Ihre Java-Anwendung im Blindflug? Zeit, das zu ändern

\n\n

Stellen Sie sich vor: Sie starten eine neue Version Ihres Microservices, auf dem lokalen Rechner läuft alles einwandfrei, die Tests bestehen. Eine Stunde später – ein Absturz in der Produktion. Wo suchen Sie nach der Ursache? Ohne eine ordentliche Überwachung und Protokollierung von Java-Anwendungen tappen Sie im Dunkeln, verlieren Geld und Nerven.

\n\n

In diesem Artikel zeigen wir Ihnen, wie Sie Ihre Anwendung von einer „Black Box" in ein transparentes System verwandeln. Sie erfahren, wie Sie die Protokollierung in Java mit modernen Bibliotheken einrichten, Metriken sammeln und ein vollwertiges Überwachungssystem aufbauen. Los geht's!

\n\n

Warum Überwachung und Protokollierung von Java-Anwendungen ein Muss sind

\n\n

Moderne Java-Entwicklung ist mehr als nur das Schreiben von Code. Es geht um die Verwaltung komplexer verteilter Systeme, Microservices und Container. Ohne Observability-Tools (Beobachtbarkeit) werden Sie nicht in der Lage sein:

\n\n
    \n
  • Schnell die Ursachen von Ausfällen zu finden
  • \n
  • Last vorherzusagen
  • \n
  • Die Leistung zu verfolgen
  • \n
  • SLAs gegenüber Kunden einzuhalten
  • \n
\n\n

Eine richtig konfigurierte Überwachung von Java-Anwendungen verleiht Ihnen die Superkraft, in Echtzeit zu sehen, was im Code passiert. Und das ist kein Luxus, sondern eine Notwendigkeit.

\n\n

Protokollierung in Java: Den Technologie-Stack auswählen

\n\n

Warum System.out.println() böse ist

\n\n

Viele Anfänger verwenden System.out.println() zum Debuggen. In einem kleinen Übungsprojekt mag das in Ordnung gehen, aber in der Produktion führt das zur Katastrophe:

\n\n
    \n
  • Keine Protokollierungsebenen (debug, info, error)
  • \n
  • Keine flexible Konfiguration der Ausgabe
  • \n
  • Schwer von automatischen Systemen zu parsen
  • \n
  • Synchrones Schreiben bremst die Anwendung aus
  • \n
\n\n

Vergessen Sie diesen Ansatz. Echte Jedi-Meister verwenden professionelle Bibliotheken.

\n\n

Beste Wahl: SLF4J + Logback

\n\n

SLF4J (Simple Logging Facade for Java) ist eine Abstraktion, die es ermöglicht, jede beliebige Protokollierungsimplementierung anzubinden. Logback ist die derzeit beliebteste und leistungsfähigste Implementierung.

\n\n

Fügen Sie in Ihre pom.xml (Maven) oder build.gradle (Gradle) ein:

\n\n
// Maven dependency\n<dependency>\n    <groupId>ch.qos.logback</groupId>\n    <artifactId>logback-classic</artifactId>\n    <version>1.4.14</version>\n</dependency>\n\n// SLF4J API (kommt normalerweise mit Logback)\n<dependency>\n    <groupId>org.slf4j</groupId>\n    <artifactId>slf4j-api</artifactId>\n    <version>2.0.9</version>\n</dependency>
\n\n

Beispiel für die Logback-Konfiguration (logback.xml)

\n\n
<configuration>\n    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">\n        <file>logs/app.log</file>\n        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\n            <fileNamePattern>logs/app-%d{yyyy-MM-dd}.log</fileNamePattern>\n            <maxHistory>30</maxHistory>\n        </rollingPolicy>\n        <encoder>\n            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">\n        <encoder>\n            <pattern>%d{HH:mm:ss.SSS} %highlight(%-5level) %cyan(%logger{36}) - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <root level="info">\n        <appender-ref ref="FILE"/>\n        <appender-ref ref="CONSOLE"/>\n    </root>\n</configuration>
\n\n

Wie man es im Code verwendet

\n\n
import org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\npublic class OrderService {\n    private static final Logger log = LoggerFactor                

Blogs

Buchempfehlungen