> ## 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.

# Config.ini Optionen

## Übersicht

In diesem Tab kannst du die `config.JTL-Shop.ini.php`-Einstellungen schnell aus dem Shop heraus anpassen, ohne diese direkt auf deinem FTP-Server aufrufen zu müssen. So kannst du hier Log- und Debug-Einstellungen direkt vornehmen. Wenn du Logfiles schreiben lässt, kannst du diese außerdem direkt hier ausgeben lassen.

<Info>
  **Kein FTP-Zugriff nötig!**

  Alle wichtigen Debug- und Log-Einstellungen können komfortabel über das Backend konfiguriert werden - ideal für Shop-Betreiber ohne technische Kenntnisse oder FTP-Zugang.
</Info>

<br />

## Features

<CardGroup cols={2}>
  <Card title="Backend-Konfiguration" icon="gear" color="#0285c7">
    Bearbeite Debug- und Log-Einstellungen direkt aus dem Shop-Backend ohne FTP-Zugriff.
  </Card>

  <Card title="Logfile-Verwaltung" icon="file-lines" color="#16a34a">
    Schreibe Logfiles und lese sie direkt im Backend aus - perfekt für Fehleranalyse.
  </Card>

  <Card title="Flexible Konfiguration" icon="toggle-on" color="#ea580c">
    Wähle zwischen Standard-Config-File oder individuellen Einstellungen im Tool.
  </Card>

  <Card title="Fehlerdiagnose" icon="stethoscope" color="#7c3aed">
    Detaillierte Kontrolle über welche Fehlertypen geloggt werden sollen.
  </Card>
</CardGroup>

<br />

## Konfigurationsoptionen

### Config File Modus

<div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
  <Frame>
    <img src="https://mintcdn.com/dzm/TSwS1K2fsghhnU-U/images/config-optionen-einstellungen.jpg?fit=max&auto=format&n=TSwS1K2fsghhnU-U&q=85&s=ed1068df34416a41976be7a965ba57b7" alt="Einstellungen" width="2074" height="1086" data-path="images/config-optionen-einstellungen.jpg" />
  </Frame>
</div>

<Tabs>
  <Tab title="Standard (Config File)">
    **Config File verwenden (Standard)**

    Bei aktivierter Option werden die Einstellungen aus der `config.JTL-Shop.ini.php` verwendet.

    <Info>
      Dies ist die Standardeinstellung und empfohlen für die meisten Anwendungsfälle. Änderungen an der Config-Datei werden automatisch übernommen.
    </Info>

    **Vorteile:**

    * Konsistenz mit Shop-Einstellungen
    * Änderungen persistent auf Dateiebene
    * Kompatibel mit allen Shop-Features

    **Nachteile:**

    * Weniger flexibel für temporäre Debug-Sessions
    * Erfordert FTP-Zugriff für erweiterte Optionen
  </Tab>

  <Tab title="Custom (Tool-Konfiguration)">
    **Individuelle Tool-Einstellungen**

    Bei deaktivierter Option erscheinen alle konfigurierbaren Optionen direkt im Tool.

    <Warning>
      Diese Einstellungen überschreiben die `config.JTL-Shop.ini.php` nur für DZM-Plugins. Shop-Core-Funktionen nutzen weiterhin die Config-Datei.
    </Warning>

    **Vorteile:**

    * Schnelle Anpassungen ohne FTP
    * Granulare Kontrolle über jeden Fehlertyp
    * Ideal für temporäres Debugging

    **Nachteile:**

    * Einstellungen gelten nur für DZM Plugins
    * Können bei Plugin-Updates überschrieben werden
  </Tab>
</Tabs>

### Log-Einstellungen

<Steps>
  <Step title="Fehler loggen aktivieren">
    <ParamField path="log_errors" type="boolean" default={true}>
      Wenn aktiviert, werden Fehler in das JTL-Shop Logbuch geschrieben.

      **Zugriff:** Backend → Fehlerbehebung → Logbuch
    </ParamField>

    <Tip>
      Sollte im Live-Betrieb **immer aktiviert** sein, um Probleme nachvollziehen zu können.
    </Tip>
  </Step>

  <Step title="DZM Plugin Loglevel festlegen">
    <ParamField path="dzm_loglevel" type="number" default={2}>
      Bestimmt, welche Meldungstypen geloggt werden:

      * **3** = Alle Meldungen (Debug, Info, Warning, Error)
      * **2** = Errors und Warnings (empfohlen)
      * **1** = Nur Errors
      * **0** = Keine Meldungen
    </ParamField>

    <AccordionGroup>
      <Accordion title="Level 3 - Alle Meldungen">
        **Verwendung:** Nur bei aktiver Fehlersuche

        **Vorteil:** Maximale Information für Debugging

        **Nachteil:** Sehr große Logfiles, kann Performance beeinträchtigen

        <Warning>
          Nicht für Live-Shops empfohlen! Logfiles können sehr schnell sehr groß werden.
        </Warning>
      </Accordion>

      <Accordion title="Level 2 - Errors und Warnings (Standard)">
        **Verwendung:** Standard für Live-Shops

        **Vorteil:** Balance zwischen Information und Performance

        **Nutzen:** Erfasst alle relevanten Probleme ohne zu viel Overhead

        <Check>
          **Empfohlen** für den Produktivbetrieb.
        </Check>
      </Accordion>

      <Accordion title="Level 1 - Nur Errors">
        **Verwendung:** Minimalistisches Logging

        **Vorteil:** Kleinste Logfiles, beste Performance

        **Nachteil:** Warnungen werden nicht erfasst, erschwert Problemdiagnose
      </Accordion>

      <Accordion title="Level 0 - Keine Meldungen">
        **Verwendung:** Nur in Ausnahmefällen

        <Warning>
          Nicht empfohlen! Ohne Logs ist Fehlerdiagnose nahezu unmöglich.
        </Warning>
      </Accordion>
    </AccordionGroup>
  </Step>
</Steps>

### Fehlertyp-Filter

Granulare Kontrolle über welche PHP-Fehlertypen geloggt werden:

<Tabs>
  <Tab title="Standard-Fehler">
    <ParamField path="exclude_errors" type="boolean" default={false}>
      **Errors ausschließen**

      Aktiviere diese Option, wenn du keine Fehlermeldungen erfassen möchtest.
    </ParamField>

    <Warning>
      Wird **nicht empfohlen**! Errors sind kritische Probleme, die unbedingt erfasst werden sollten.
    </Warning>

    **Beispiel-Errors:**

    * Fatal Errors (Script-Abbruch)
    * Undefined Variables
    * Function not found
    * Database Connection Errors
  </Tab>

  <Tab title="Warnungen">
    <ParamField path="exclude_warnings" type="boolean" default={false}>
      **Warnungen ausschließen**

      Warnungen sind Hinweise auf mögliche Probleme, die nicht zum Abbruch führen.
    </ParamField>

    <Info>
      Warnungen sollten erfasst werden, da sie oft auf zukünftige Probleme hinweisen.
    </Info>

    **Beispiel-Warnings:**

    * Deprecated Functions
    * Include/Require Warnings
    * Division by Zero
    * Invalid Arguments
  </Tab>

  <Tab title="Hinweise">
    <ParamField path="exclude_notices" type="boolean" default={true}>
      **Hinweise ausschließen**

      Informative Hinweise können Logfiles überladen, besonders in Entwicklungs-Umgebungen.
    </ParamField>

    <Tip>
      Im Live-Betrieb können Notices deaktiviert werden. Bei Debugging sollten sie aktiviert sein.
    </Tip>

    **Beispiel-Notices:**

    * Undefined Index
    * Undefined Offset
    * Use of undefined constant
  </Tab>

  <Tab title="Weitere Typen">
    **Parse Fehler**

    <ParamField path="exclude_parse_errors" type="boolean" default={false}>
      Parse-Fehler treten auf, wenn PHP-Code syntaktisch nicht korrekt ist.

      <Warning>
        Sollten **nicht ausgeschlossen** werden - Parse-Errors sind kritisch!
      </Warning>
    </ParamField>

    **Strict Verstöße**

    <ParamField path="exclude_strict" type="boolean" default={true}>
      Strict-Standards-Meldungen für optimale Code-Qualität.

      Können im Live-Betrieb deaktiviert werden.
    </ParamField>

    **Deprecated Meldungen**

    <ParamField path="exclude_deprecated" type="boolean" default={false}>
      Warnungen über veraltete Funktionen.

      <Info>
        Sollten erfasst werden, um rechtzeitig vor PHP-Updates zu reagieren.
      </Info>
    </ParamField>
  </Tab>
</Tabs>

### Frontend-Ausgabe

<ParamField path="display_errors" type="boolean" default={false}>
  **Fehler im Frontend ausgeben**

  Bestimmt, ob Fehlermeldungen direkt für Besucher sichtbar sein sollen.
</ParamField>

<Tabs>
  <Tab title="Live-Shop (AUS)">
    <Warning>
      **Im Live-Betrieb sollte diese Option IMMER deaktiviert sein!**
    </Warning>

    **Gründe:**

    * **Sicherheit:** Fehler können sensible Informationen preisgeben
    * **Professionalität:** Fehlermeldungen wirken unprofessionell
    * **User Experience:** Verwirrt und verunsichert Kunden

    **Stattdessen:**

    * Nutze Logfiles für Fehleranalyse
    * Zeige generische Fehlerseiten
    * Überwache Logs regelmäßig
  </Tab>

  <Tab title="Entwicklung (AN)">
    <Info>
      **In Entwicklungs-Umgebungen kann diese Option aktiviert sein.**
    </Info>

    **Vorteile:**

    * Sofortiges visuelles Feedback
    * Schnellere Entwicklung
    * Detaillierte Stack Traces

    **Wichtig:**

    * Nur auf Test-/Staging-Systemen
    * Niemals auf Live-Shops
    * Zugriff idealerweise IP-beschränkt
  </Tab>
</Tabs>

### Logfile-Verwaltung

<ParamField path="write_logfile" type="boolean" default={false}>
  **Zusätzliches Logfile schreiben**

  Erstellt ein separates Logfile zusätzlich zum JTL-Shop Logbuch.
</ParamField>

<Steps>
  <Step title="Logfile aktivieren">
    Aktiviere "Logfile schreiben?" um ein separates DZM-Logfile zu erstellen.

    <Info>
      Das Logfile wird im Plugin-Verzeichnis unter `/plugins/dzm_resources/logs/` gespeichert.
    </Info>
  </Step>

  <Step title="Logs auslesen">
    <div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
      <Frame>
        <img src="https://mintcdn.com/dzm/TSwS1K2fsghhnU-U/images/config-optionen-logfiles.jpg?fit=max&auto=format&n=TSwS1K2fsghhnU-U&q=85&s=f66e1bd706368a58c6541a568f7da664" alt="Logfiles laden" width="2062" height="252" data-path="images/config-optionen-logfiles.jpg" />
      </Frame>
    </div>

    Klicke auf "Logfiles laden", um die Inhalte direkt im Backend anzuzeigen.

    <Tip>
      Die Ansicht zeigt die neuesten Einträge zuerst für schnelleren Zugriff.
    </Tip>
  </Step>

  <Step title="Logs interpretieren">
    Jeder Log-Eintrag enthält:

    * **Timestamp:** Wann trat der Fehler auf
    * **Level:** Error, Warning, Notice, etc.
    * **Message:** Fehlerbeschreibung
    * **File & Line:** Wo trat der Fehler auf
    * **Stack Trace:** Aufruf-Kette (bei Errors)
  </Step>

  <Step title="Logs archivieren/löschen">
    Regelmäßig alte Logs archivieren oder löschen, um Speicherplatz zu sparen.

    <Warning>
      Große Logfiles können den Speicher füllen und die Performance beeinträchtigen.
    </Warning>
  </Step>
</Steps>

<br />

## Empfohlene Konfigurationen

<Tabs>
  <Tab title="Live-Shop">
    **Produktionsumgebung**

    ```ini theme={null}
    Config File verwenden: ✓ (aktiviert)
    Fehler loggen: ✓
    DZM Plugin Loglevel: 2 (Errors + Warnings)
    Errors ausschließen: ✗
    Warnungen ausschließen: ✗
    Hinweise ausschließen: ✓
    Parse Fehler ausschließen: ✗
    Strict Verstöße ausschließen: ✓
    Deprecated ausschließen: ✗
    Fehler im Frontend ausgeben: ✗ (WICHTIG!)
    Logfile schreiben: ✗ (optional ✓)
    ```

    <Check>
      Diese Konfiguration bietet optimale Balance zwischen Überwachung und Performance.
    </Check>
  </Tab>

  <Tab title="Staging/Test">
    **Test- und Staging-Umgebung**

    ```ini theme={null}
    Config File verwenden: ✗ (deaktiviert)
    Fehler loggen: ✓
    DZM Plugin Loglevel: 3 (Alle Meldungen)
    Errors ausschließen: ✗
    Warnungen ausschließen: ✗
    Hinweise ausschließen: ✗
    Parse Fehler ausschließen: ✗
    Strict Verstöße ausschließen: ✗
    Deprecated ausschließen: ✗
    Fehler im Frontend ausgeben: ✓
    Logfile schreiben: ✓
    ```

    <Info>
      Maximale Logging-Stufe für umfassende Tests und Debugging.
    </Info>
  </Tab>

  <Tab title="Entwicklung">
    **Lokale Entwicklungsumgebung**

    ```ini theme={null}
    Config File verwenden: ✗ (deaktiviert)
    Fehler loggen: ✓
    DZM Plugin Loglevel: 3 (Alle Meldungen)
    Errors ausschließen: ✗
    Warnungen ausschließen: ✗
    Hinweise ausschließen: ✗
    Parse Fehler ausschließen: ✗
    Strict Verstöße ausschließen: ✗
    Deprecated ausschließen: ✗
    Fehler im Frontend ausgeben: ✓
    Logfile schreiben: ✓
    ```

    <Tip>
      Vollständiges Logging hilft bei der Entwicklung und beim Debugging neuer Features.
    </Tip>
  </Tab>

  <Tab title="Problemdiagnose">
    **Temporäre Konfiguration für Fehlersuche**

    ```ini theme={null}
    Config File verwenden: ✗ (deaktiviert)
    Fehler loggen: ✓
    DZM Plugin Loglevel: 3 (Alle Meldungen)
    Alle Ausschlüsse: ✗ (nichts ausschließen)
    Fehler im Frontend ausgeben: ✗ (nur wenn nötig)
    Logfile schreiben: ✓
    ```

    <Warning>
      Nach Problemlösung **unbedingt** auf Live-Konfiguration zurückstellen!
    </Warning>
  </Tab>
</Tabs>

<br />

## Best Practices

<AccordionGroup>
  <Accordion title="Regelmäßige Log-Reviews">
    **Warum wichtig:**

    * Probleme frühzeitig erkennen
    * Trends identifizieren
    * Performance-Probleme aufdecken

    **Empfehlung:**

    * Täglich: Kurzer Blick auf neue Errors
    * Wöchentlich: Review aller Warnings
    * Monatlich: Vollständiger Log-Audit

    <Tip>
      Richte automatische Reports ein, die dich bei kritischen Errors benachrichtigen.
    </Tip>
  </Accordion>

  <Accordion title="Log-Rotation">
    **Problem:** Logfiles wachsen unbegrenzt

    **Lösung:**

    * Implementiere automatische Log-Rotation
    * Archiviere alte Logs monatlich
    * Lösche Logs älter als 6-12 Monate

    **Beispiel-Script (Cron):**

    ```bash theme={null}
    # Logs älter als 30 Tage archivieren
    find /path/to/logs -name "*.log" -mtime +30 -exec gzip {} \;

    # Archive älter als 180 Tage löschen
    find /path/to/logs -name "*.log.gz" -mtime +180 -delete
    ```
  </Accordion>

  <Accordion title="Sicherheit">
    **Logfiles schützen:**

    * Nicht öffentlich zugänglich machen
    * Berechtigungen korrekt setzen (640 oder 600)
    * Sensible Daten filtern (Passwörter, API-Keys)

    **.htaccess Schutz:**

    ```apache theme={null}
    <Files "*.log">
      Order Deny,Allow
      Deny from all
    </Files>
    ```

    <Warning>
      Logfiles können sensible Informationen enthalten - immer vor öffentlichem Zugriff schützen!
    </Warning>
  </Accordion>

  <Accordion title="Performance">
    **Loggen kostet Performance:**

    * Level 3 nur bei Bedarf
    * Frontend-Ausgabe niemals im Live-Betrieb
    * Große Logs regelmäßig bereinigen

    **Optimierung:**

    * Nutze Log-Level 2 im Produktivbetrieb
    * Schreibe Logs asynchron (wenn möglich)
    * Überwache Logfile-Größen
  </Accordion>
</AccordionGroup>

<br />

## Troubleshooting

<AccordionGroup>
  <Accordion title="Logs werden nicht geschrieben">
    **Mögliche Ursachen:**

    1. Logging ist deaktiviert
    2. Keine Schreibrechte im Log-Verzeichnis
    3. PHP-Konfiguration verhindert Logging
    4. Disk-Speicher voll

    **Lösung:**

    ```bash theme={null}
    # Prüfe Verzeichnis-Berechtigungen
    ls -la /plugins/dzm_resources/logs/

    # Setze korrekte Berechtigungen
    chmod 755 /plugins/dzm_resources/logs/
    chmod 644 /plugins/dzm_resources/logs/*.log

    # Prüfe Speicherplatz
    df -h
    ```
  </Accordion>

  <Accordion title="Zu viele Log-Einträge">
    **Problem:** Logfile füllt sich sehr schnell

    **Diagnose:**

    1. Welcher Fehlertyp dominiert?
    2. Kommt der Fehler von einem bestimmten Plugin?
    3. Ist es ein wiederkehrendes Problem?

    **Lösung:**

    * Behebe die Ursache des Fehlers
    * Erhöhe temporär den Loglevel
    * Schließe unwichtige Fehlertypen aus
    * Implementiere Log-Rotation
  </Accordion>

  <Accordion title="Logfile kann nicht gelesen werden">
    **Fehlermeldung:** "Permission denied" oder "File not found"

    **Lösung:**

    ```bash theme={null}
    # Prüfe Dateiberechtigungen
    ls -l /plugins/dzm_resources/logs/plugin.log

    # Korrigiere Berechtigungen
    chmod 644 /plugins/dzm_resources/logs/plugin.log

    # Prüfe Besitzer
    chown www-data:www-data /plugins/dzm_resources/logs/plugin.log
    ```
  </Accordion>
</AccordionGroup>

<Check>
  **Tipp:** Führe nach jeder größeren Änderung (Plugin-Updates, Shop-Updates, Config-Änderungen) einen kurzen Log-Check durch, um sicherzustellen, dass alles korrekt läuft.
</Check>

<br />

## Weiterführende Ressourcen

<CardGroup cols={2}>
  <Card title="PHP Error Handling" icon="php" href="https://www.php.net/manual/en/book.errorfunc.php">
    Offizielle PHP-Dokumentation zu Error Handling und Logging
  </Card>

  <Card title="JTL-Shop Logs" icon="book" href="https://guide.jtl-software.de/jtl-shop/">
    JTL-Shop Guide zur Fehlerdiagnose und Log-Verwaltung
  </Card>

  <Card title="Log Management Best Practices" icon="lightbulb" href="https://www.loggly.com/ultimate-guide/php-logging-basics/">
    Best Practices für professionelles Log-Management
  </Card>

  <Card title="Debugging Tools" icon="bug" href="https://xdebug.org/">
    Xdebug für erweiterte PHP-Debugging-Möglichkeiten
  </Card>
</CardGroup>
