#
DebugUtils
Kurzbeschreibung
DebugUtils kapselt java.util.logging.Logger und fügt standardisierte Prefixes für Logs hinzu.
Beispiel:
DebugUtils.debug(Level.INFO, "Init", "Component loaded");
DebugUtils.debug(Level.SEVERE, "DB", "Fehler beim Verbinden", exception);
Methoden sind sehr direkt und statisch verfügbar.
#
Quick Reference
Signaturen:
debug(Level level, String prefix, String message, Throwable throwable)debug(Level level, String prefix, String message)debug(Level level, String message, Throwable throwable)debug(Level level, String message)
Praktische Beispiele:
// Mit Prefix und Exception
DebugUtils.debug(Level.SEVERE, "DB", "Fehler beim Speichern", sqlException);
// Nur Prefix
DebugUtils.debug(Level.INFO, "Engine", "Component initialized");
// Message + Throwable, ohne Prefix
DebugUtils.debug(Level.WARNING, "Optional fallback behaviour used", ex);
// Kurzer Einzeiler
DebugUtils.debug(Level.FINE, "Cache hit for key: user:1234");
Warnung
Verwende sehr detaillierte Log-Levels (z. B. FINE, FINER) nur in Entwicklung oder wenn Log-Level-Filter konfiguriert sind — große Mengen feiner Logs können die I/O-Last und Performance erhöhen.
#
Alle Overloads und Praxisbeispiele
Die Klasse bietet vier Overloads — hier die Signaturen und praktische Beispiele sowie Hinweise zur Verwendung.
debug(Level level, String prefix, String message, Throwable throwable)
DebugUtils.debug(Level.SEVERE, "DB", "Fehler beim Speichern", sqlException);
Verwendung: nutze diese Variante, wenn du ein Throwable mitschicken willst (Stacktrace wird geloggt).
debug(Level level, String prefix, String message)
DebugUtils.debug(Level.INFO, "Engine", "Component initialized");
Verwendung: häufigster Fall — strukturiertes loggen mit Kontext-Prefix.
debug(Level level, String message, Throwable throwable)
DebugUtils.debug(Level.WARNING, "Optional fallback behaviour used", ex);
Verwendung: wenn kein zusätzlicher Kontext-String nötig ist.
debug(Level level, String message)
DebugUtils.debug(Level.FINE, "Cache hit for key: user:1234");
Verwendung: kurzer Einzeiler-Log; für sehr häufige Logs (z. B. TRACE/FINE) vorsichtig sein — viele Logs können I/O/Performance verursachen.
Achtung
Verwende Level.FINE/FINEST/TRACE-Äquivalente nur für Entwicklung oder mit konfigurierter Log-Level-Filterung — große Mengen an feinkörnigen Logs können die Performance beeinträchtigen.
Hinweis
Der Prefix [CorePlugin] hilft, Plugin-Logs schnell zu finden. Nutze prefix-Parameter, um Sub-Komponenten (z. B. DB, Engine, GUI) direkt sichtbar zu machen.
#
Empfehlungen / Best Practices
- Verwende konsistente Prefixes (z. B.
DB,Engine,Worker) um Log-Ausgaben durchsuchbar zu machen. - Nutze
Level.SEVEREfür Fehler,Level.WARNINGfür potenzielle Probleme,Level.INFOfür wichtige Lifecycle-Ereignisse undLevel.FINEfür sehr detaillierte Debug-Informationen. - Wenn du strukturierte Logs brauchst (z. B. JSON für externes Logging), ersetze
DebugUtilsdurch eine Bibliothek wie SLF4J+Logback oder Log4j2 mit JSON-Layout.