> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreizack-medien.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Logs

## Übersicht

Einige Logs werden direkt in der Datenbank mit nützlichen Zusatzinformationen erfasst. In diesem Tab kannst du diese zentral einsehen, analysieren und verwalten.

<Info>
  **Zentrale Log-Verwaltung**

  Alle DZM Plugins schreiben ihre Logs in ein zentrales System. So hast du alle wichtigen Ereignisse, Fehler und Informationen an einem Ort - ohne durch verschiedene Logfiles navigieren zu müssen.
</Info>

<br />

## Features

<CardGroup cols={2}>
  <Card title="Zentrale Ansicht" icon="list" color="#0285c7">
    Alle Logs von allen DZM Plugins an einem einzigen Ort übersichtlich dargestellt.
  </Card>

  <Card title="Erweiterte Informationen" icon="circle-info" color="#16a34a">
    Datenbank-Logs enthalten Zusatzinformationen wie User-Context, Request-Daten und Stack Traces.
  </Card>

  <Card title="Einfache Verwaltung" icon="broom" color="#ea580c">
    Logs aktualisieren, filtern, durchsuchen und mit einem Klick löschen.
  </Card>

  <Card title="Performance-Optimiert" icon="gauge-high" color="#7c3aed">
    Paginierung und intelligente Indexierung sorgen für schnellen Zugriff auch bei vielen Einträgen.
  </Card>
</CardGroup>

<br />

## Log-Übersicht

<div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
  <Frame>
    <img src="https://mintcdn.com/dzm/MsSUfYTNvfKRB89J/images/logs-uebersicht.jpg?fit=max&auto=format&n=MsSUfYTNvfKRB89J&q=85&s=3f6631ab798eb19233d336e0ed5f6904" alt="Datenbank-Logs" width="2080" height="280" data-path="images/logs-uebersicht.jpg" />
  </Frame>
</div>

### Interface-Elemente

<Tabs>
  <Tab title="Log-Tabelle">
    **Spalten in der Übersicht:**

    | Spalte            | Beschreibung                              |
    | ----------------- | ----------------------------------------- |
    | **#**             | Laufende Nummer des Log-Eintrags          |
    | **Plugin**        | Welches DZM Plugin hat geloggt?           |
    | **Auslöser**      | Was hat den Log-Eintrag ausgelöst?        |
    | **Datum**         | Wann wurde der Eintrag erstellt?          |
    | **Beschreibung**  | Kurzbeschreibung des Events               |
    | **Fehlermeldung** | Technische Fehlermeldung (wenn vorhanden) |
    | **Level**         | Error, Warning, Info, Debug               |

    <Tip>
      Klicke auf eine Zeile um detaillierte Informationen und den vollständigen Stack Trace zu sehen.
    </Tip>
  </Tab>

  <Tab title="Filter & Suche">
    **Verfügbare Filter:**

    **Nach Level filtern:**

    * <span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#FAE3E3',border:'1.5px solid #AA2E26',marginRight:'4px',verticalAlign:'middle'}} /> Errors only
    * <span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#FEFCEB',border:'1.5px solid #C18D30',marginRight:'4px',verticalAlign:'middle'}} /> Warnings only
    * <span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#E4F2FD',border:'1.5px solid #2D689D',marginRight:'4px',verticalAlign:'middle'}} /> Info only
    * <span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#EDEDED',border:'1.5px solid #949494',marginRight:'4px',verticalAlign:'middle'}} /> Debug only
    * Alle anzeigen

    **Nach Plugin filtern:**

    * Dropdown mit allen DZM Plugins
    * Zeigt nur Logs des gewählten Plugins

    **Nach Zeitraum filtern:**

    * Letzte 24 Stunden
    * Letzte 7 Tage
    * Letzte 30 Tage
    * Benutzerdefiniert

    **Suchfunktion:**

    * Durchsuche Message-Text
    * Suche nach User
    * Suche nach IP-Adresse
    * Volltextsuche in Details
  </Tab>

  <Tab title="Aktionen">
    **Aktualisieren**

    <ParamField path="refresh" type="button">
      Lädt die neuesten Log-Einträge und aktualisiert die Ansicht.

      <Info>
        Logs werden in Echtzeit geschrieben - nutze diese Funktion bei aktiver Fehlersuche.
      </Info>
    </ParamField>

    **Logs löschen**

    <ParamField path="delete" type="button">
      Löscht **alle** bisherigen Log-Einträge aus der Datenbank.

      <Warning>
        Diese Aktion kann nicht rückgängig gemacht werden! Exportiere wichtige Logs vorher.
      </Warning>
    </ParamField>

    **Exportieren** (geplant)

    <ParamField path="export" type="button">
      Exportiere Logs als CSV oder JSON für externe Analyse.
    </ParamField>
  </Tab>

  <Tab title="Paginierung">
    **Seitennavigation:**

    * Standardmäßig 50 Einträge pro Seite
    * Pfeile für Vor/Zurück
    * Direkteingabe der Seitenzahl
    * "Zur letzten Seite" Button

    **Einträge pro Seite:**

    * 25 Einträge
    * 50 Einträge (Standard)
    * 100 Einträge
    * 250 Einträge

    <Note>
      Bei sehr vielen Einträgen (>10.000) kann die Ladezeit bei hohen Seitenzahlen etwas länger sein.
    </Note>
  </Tab>
</Tabs>

<br />

## Log-Levels verstehen

<AccordionGroup>
  <Accordion title={<><span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#FAE3E3',border:'1.5px solid #AA2E26',marginRight:'8px',verticalAlign:'middle'}} />ERROR - Kritische Fehler</>}>
    **Was bedeutet es:**
    Ein schwerwiegender Fehler ist aufgetreten, der die Funktionalität beeinträchtigt.

    **Typische Beispiele:**

    * Datenbankfehler
    * Failed API Calls
    * Fehlende Dateien oder Berechtigungen
    * Unerwartete Exceptions

    **Was tun:**

    * Sofort prüfen und beheben
    * Prüfe ob Funktionalität betroffen ist
    * Bei Wiederholung: Ursache identifizieren

    <Warning>
      Errors sollten niemals ignoriert werden - sie deuten auf echte Probleme hin!
    </Warning>
  </Accordion>

  <Accordion title={<><span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#FEFCEB',border:'1.5px solid #C18D30',marginRight:'8px',verticalAlign:'middle'}} />WARNING - Warnungen</>}>
    **Was bedeutet es:**
    Etwas funktioniert nicht wie erwartet, aber der Betrieb läuft weiter.

    **Typische Beispiele:**

    * Deprecated Functions verwendet
    * Fehlende optionale Konfiguration
    * Performance-Probleme
    * Ungewöhnliche aber handhabbare Zustände

    **Was tun:**

    * Bei Gelegenheit prüfen
    * Wenn wiederkehrend: beheben
    * Bei Deprecated: für zukünftige Updates vorbereiten

    <Info>
      Warnings sind Hinweise auf potenzielle Probleme - sollten mittelfristig behoben werden.
    </Info>
  </Accordion>

  <Accordion title={<><span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#E4F2FD',border:'1.5px solid #2D689D',marginRight:'8px',verticalAlign:'middle'}} />INFO - Informationen</>}>
    **Was bedeutet es:**
    Wichtige Ereignisse oder Statusmeldungen zur Nachvollziehbarkeit.

    **Typische Beispiele:**

    * Erfolgreiche Datenimporte
    * Konfigurationsänderungen
    * Benutzeraktionen (Login, Käufe)
    * System-Events

    **Was tun:**

    * Zur Kenntnis nehmen
    * Bei Analysen hilfreich
    * Für Audits relevant

    <Tip>
      Info-Logs sind besonders nützlich für Business Intelligence und Audit-Trails.
    </Tip>
  </Accordion>

  <Accordion title={<><span style={{display:'inline-block',width:'15px',height:'15px',borderRadius:'50%',background:'#EDEDED',border:'1.5px solid #949494',marginRight:'8px',verticalAlign:'middle'}} />DEBUG - Debug-Informationen</>}>
    **Was bedeutet es:**
    Detaillierte technische Informationen für Entwickler und Support.

    **Typische Beispiele:**

    * Variablenwerte
    * Methodenaufrufe
    * SQL-Queries
    * API-Request/Response-Details

    **Was tun:**

    * Nur bei aktiver Fehlersuche relevant
    * Im Live-Betrieb meist nicht nötig
    * Für Support-Anfragen hilfreich

    <Note>
      Debug-Logs werden nur geschrieben, wenn Debug-Modus aktiviert ist.
    </Note>
  </Accordion>
</AccordionGroup>

<br />

## Log-Details ansehen

<Steps>
  <Step title="Log-Eintrag auswählen">
    Klicke in der Log-Tabelle auf einen Eintrag, um die Detail-Ansicht zu öffnen.
  </Step>

  <Step title="Informationen prüfen">
    Die Detail-Ansicht zeigt:

    **Grundinformationen:**

    * Vollständige Message
    * Genauer Timestamp
    * Log-Level und Plugin

    **Technische Details:**

    * Stack Trace (bei Errors)
    * Betroffene Datei und Zeile
    * Function/Method Context

    **Request-Kontext:**

    * URL die aufgerufen wurde
    * HTTP-Method (GET, POST, etc.)
    * User Agent
    * Session-ID (wenn verfügbar)

    **Zusatzdaten:**

    * Custom Data (Plugin-spezifisch)
    * Related IDs (Order, Product, etc.)
    * Performance Metrics
  </Step>

  <Step title="Aktion ableiten">
    Basierend auf den Informationen:

    * Problem identifizieren
    * Reproduktionsschritte erkennen
    * Fix implementieren oder Support kontaktieren
  </Step>
</Steps>

<br />

## Häufige Log-Einträge

<Tabs>
  <Tab title="Plugin-Installation">
    **Typische Einträge:**

    ```
    [INFO] Plugin XYZ successfully installed
    [INFO] Database tables created for plugin XYZ
    [INFO] Plugin configuration initialized
    ```

    **Normal:** Installation-Logs zeigen erfolgreichen Setup

    **Problem-Indikatoren:**

    ```
    [ERROR] Failed to create database table: XYZ
    [ERROR] Plugin installation rolled back
    [WARNING] Missing dependencies for plugin XYZ
    ```
  </Tab>

  <Tab title="Konfigurationsänderungen">
    **Typische Einträge:**

    ```
    [INFO] Configuration updated by user@example.com
    [INFO] Setting 'feature_x' changed from false to true
    [INFO] Cache cleared after configuration change
    ```

    **Nutzen:**

    * Audit Trail für Änderungen
    * Nachvollziehbarkeit bei Problemen
    * Compliance-Dokumentation
  </Tab>

  <Tab title="Performance-Warnungen">
    **Typische Einträge:**

    ```
    [WARNING] Query execution time exceeded 1000ms
    [WARNING] Memory usage above 80%: 205MB/256MB
    [WARNING] High request count: 500 req/min
    ```

    **Maßnahmen:**

    * Queries optimieren
    * Memory Limit erhöhen
    * Rate Limiting prüfen
    * Server-Ressourcen skalieren
  </Tab>

  <Tab title="API-Kommunikation">
    **Typische Einträge:**

    ```
    [INFO] API request to example.com successful
    [ERROR] API request failed: Connection timeout
    [WARNING] API response slow: 3500ms
    [DEBUG] API Request: {"endpoint": "/api/v1/..."}
    ```

    **Analyse:**

    * Externe Dienst-Verfügbarkeit prüfen
    * API-Credentials validieren
    * Rate Limits beachten
  </Tab>
</Tabs>

<br />

## Best Practices

<AccordionGroup>
  <Accordion title="Regelmäßige Reviews">
    **Empfohlene Routine:**

    **Täglich:**

    * Neue Errors durchsehen (5 min)
    * Kritische Warnings prüfen

    **Wöchentlich:**

    * Alle Warnings reviewen (15 min)
    * Muster in Errors erkennen
    * Performance-Logs analysieren

    **Monatlich:**

    * Vollständiger Log-Audit (30-60 min)
    * Alte Logs archivieren/löschen
    * Trends identifizieren

    <Tip>
      Richte dir wiederkehrende Termine ein - regelmäßige Log-Reviews verhindern, dass kleine Probleme zu großen werden.
    </Tip>
  </Accordion>

  <Accordion title="Log-Hygiene">
    **Wann Logs löschen:**

    * Vor großen Änderungen (für klare Before/After-Ansicht)
    * Nach erfolgreicher Problembehebung
    * Bei zu vielen Einträgen (>100.000)
    * Regelmäßig (z.B. vierteljährlich)

    **Was vorher tun:**

    * Wichtige Errors dokumentieren
    * Bei Bedarf exportieren (wenn verfügbar)
    * Screenshots kritischer Einträge

    <Warning>
      Lösche Logs nur, wenn du sicher bist, dass keine wichtigen Informationen verloren gehen!
    </Warning>
  </Accordion>

  <Accordion title="Effektive Fehlersuche">
    **Strategie bei Problemen:**

    <Steps>
      <Step title="Reproduzieren">
        * Problem nachstellen
        * Genau dokumentieren was passiert
        * Logs während Reproduktion beobachten
      </Step>

      <Step title="Logs filtern">
        * Nach relevanten Plugin filtern
        * Zeitraum eingrenzen (letzten 10 Minuten)
        * Nur Errors/Warnings anzeigen
      </Step>

      <Step title="Analysieren">
        * Stack Trace durchgehen
        * Request-Kontext prüfen
        * Ähnliche Einträge suchen
      </Step>

      <Step title="Lösen">
        * Fix implementieren
        * Erneut testen
        * Logs prüfen ob Problem behoben
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Performance optimieren">
    **Logs können Performance beeinflussen:**

    **Bei vielen Einträgen:**

    * Regelmäßig alte Logs löschen
    * Database-Indizes prüfen
    * Log-Level anpassen (nicht alles loggen)

    **Debug-Modus:**

    * Nur temporär aktivieren
    * Im Live-Betrieb deaktivieren
    * Kann viele Einträge generieren

    <Info>
      Die Log-Datenbank-Tabelle sollte idealerweise unter 100.000 Einträgen bleiben für optimale Performance.
    </Info>
  </Accordion>
</AccordionGroup>

<br />

## Logs für Support-Anfragen

<Steps>
  <Step title="Relevante Logs identifizieren">
    Wenn du Support kontaktierst:

    * Filtere nach dem betroffenen Plugin
    * Setze Zeitraum auf "letzten 24h"
    * Zeige nur Errors und Warnings
  </Step>

  <Step title="Screenshots erstellen">
    Mache Screenshots von:

    * Der Log-Übersicht mit Filtern
    * Detail-Ansicht relevanter Errors
    * Stack Traces (vollständig)

    <Tip>
      Nutze Browser-Tools um vollständige Screenshots zu erstellen (auch von langem Content).
    </Tip>
  </Step>

  <Step title="Kontext bereitstellen">
    Informiere den Support über:

    * Wann trat das Problem auf?
    * Was hast du gemacht?
    * Ist es reproduzierbar?
    * Welche Plugins sind installiert?
    * PHP/Shop-Version
  </Step>

  <Step title="Logs teilen">
    * Screenshots in Support-Ticket anhängen
    * Oder: Export-Funktion nutzen (wenn verfügbar)
    * Sensitive Daten schwärzen (IPs, User-IDs)
  </Step>
</Steps>

<br />

## Troubleshooting

<AccordionGroup>
  <Accordion title="Keine Logs sichtbar">
    **Mögliche Ursachen:**

    1. Noch keine Logs geschrieben
    2. Logging deaktiviert
    3. Database-Verbindung Problem
    4. Filter zu restriktiv

    **Lösung:**

    * Prüfe [Config.ini Optionen](/Resources-and-Health/Config-Optionen) ob Logging aktiv ist
    * Setze alle Filter zurück
    * Aktualisiere die Ansicht
    * Teste Logging mit Debug-Modus
  </Accordion>

  <Accordion title="Logs werden nicht aktualisiert">
    **Problem:** Neue Einträge erscheinen nicht

    **Checks:**

    * Browser-Cache leeren
    * Hard Reload (Strg+Shift+R)
    * Prüfe ob Auto-Refresh aktiv ist
    * Manuelle Aktualisierung klicken

    **Falls weiter Problem:**

    * Prüfe Browser-Console auf JS-Errors
    * Teste in anderem Browser
    * Cache-System prüfen
  </Accordion>

  <Accordion title="Sehr langsame Ladezeiten">
    **Ursache:** Zu viele Log-Einträge in Datenbank

    **Sofort-Maßnahme:**

    * Reduziere Einträge pro Seite auf 25
    * Nutze Filter um Datenmenge zu reduzieren

    **Langfristig:**

    * Alte Logs löschen
    * Implementiere automatische Log-Rotation
    * Reduziere Log-Level

    <Warning>
      Bei >250.000 Einträgen können Performance-Probleme auftreten.
    </Warning>
  </Accordion>

  <Accordion title="Logs löschen funktioniert nicht">
    **Mögliche Ursachen:**

    * Keine Berechtigung
    * Database-Lock
    * Timeout bei vielen Einträgen

    **Lösung:**

    ```sql theme={null}
    -- Manuell via phpMyAdmin (als Notlösung)
    TRUNCATE TABLE `dzm_plugin_logs`;
    ```

    <Warning>
      Nur als letzter Ausweg - normalerweise sollte der Button funktionieren!
    </Warning>
  </Accordion>
</AccordionGroup>

<br />

## Erweiterte Features (geplant)

<CardGroup cols={2}>
  <Card title="Export-Funktion" icon="file-export">
    **Coming Soon**

    Exportiere Logs als CSV oder JSON für:

    * Externe Analyse-Tools
    * Langzeit-Archivierung
    * Compliance-Reports
    * Custom Analytics
  </Card>

  <Card title="Automatische Alerts" icon="bell">
    **Coming Soon**

    Erhalte Benachrichtigungen bei:

    * Kritischen Errors
    * Ungewöhnlich vielen Warnings
    * Performance-Problemen
    * Plugin-Fehlern
  </Card>

  <Card title="Log-Analytics" icon="chart-line">
    **Coming Soon**

    Visualisierung und Trends:

    * Error-Rate über Zeit
    * Plugin-Performance-Vergleich
    * Häufigste Fehlertypen
    * User-Activity-Tracking
  </Card>

  <Card title="Automatische Bereinigung" icon="calendar-check">
    **Coming Soon**

    Konfigurierbare Auto-Deletion:

    * Logs älter als X Tage löschen
    * Maximale Anzahl Einträge
    * Intelligente Priorisierung
    * Archivierung vor Löschung
  </Card>
</CardGroup>

<Check>
  **Pro-Tipp:** Kombiniere die Log-Ansicht mit den [Config.ini Optionen](/Resources-and-Health/Config-Optionen), um temporär detailliertes Logging zu aktivieren, wenn du ein Problem analysierst. Vergiss nicht, es danach wieder zu deaktivieren!
</Check>
