WP_DEBUG_LOG: Fehlermeldungen für produktive WordPress-Seiten ausgeben

Wer kennt das nicht? Irgendwas läuft schief mit WordPress, mit einer Konfiguration, einem Plugin oder Theme, und im Support fragt man nach etwaigen Fehlermeldungen.

Um Fehlermeldungen in WordPress zu aktivieren, gibt es die Konstante WP_DEBUG. Auf den Wert TRUE gesetzt, sorgt sie dafür, dass WordPress (bzw. PHP) auftretende Fehler mit entsprechenden Meldungen im Browser dokumentiert.

Auf einer produktiven Website sieht das in der Regel – hm – unvorteilhaft aus. Was tun?

Fehlermeldungen loggen

Mit folgenden Zeilen in der wp-config.php loggst du die Fehlermeldungen, anstatt dass sie im Browser die Nutzererfahrung auf deiner Webiste ruinieren:

Ergebnis

  • Du bist im Debug-Modus.
  • Es wird kein Fehler im Browser angezeigt.
  • Alle Fehlermeldungen wandern in /wp-content/debug.log.

Obacht!

Vorsicht ist auch hier die Mutter der Porzellankiste, denn WP_DEBUG_LOG hat nicht umsonst den voreingestellten Wert FALSE. WP_DEBUG schreibt wirklich alles mit (Errors und Warnings) und WP_DEBUG_LOG übernimmt die Meldungen komplett in die Log-Datei. Die entsprechenden Zeilen im Core ( load.php, wp_debug_mode()):

Je nachdem, was auf deiner Site gerade passiert, kann die Log-Datei also leicht in kürzester Zeit exorbitante Ausmaße annehmen, bis hin zu Gigabyte-Größen!

Verwende WP_DEBUG_LOG daher besser nur punktuell und lasse die Anweisungen keinesfalls einfach in der wp-config.php stehen.

Beitrag teilen

Author Avatar

Hi! Mein Name ist Chris und ich arbeite als leidenschaftlicher Webentwickler im X-Team der Inpsyde GmbH. Meine Spezialgebiete sind die Backend- und Frontendentwicklung. Wenn ich nicht gerade über Barrierefreiheit und Usability diskutiere, bin ich auf Google+ unterwegs. In meiner Freizeit absolviere ich ein Informatikfernstudium, treibe gern und viel Sport, verschlinge ein Buch nach dem Anderen und blogge auf www.chrico.info.

Auch interessant:

WooCommerce Projekte vorgestellt: Die Beer Ambassadors - Bierspezialitäten im Abo

von Michael Firnkes

Die Beer Ambassadors haben einen ganz besonderen Onlineshop auf die Beine gestellt - mit WooCommerce und German Market. Wir haben die beiden Gründer Thoma ...

Weiterlesen
dsgvo plugins woocommerce

Die Übersicht: 5 DSGVO Plugins für WordPress und WooCommerce

von Michael Firnkes

Auch nach dem Inkrafttreten der EU-Datenschutzverordnung suchen viele Portal- und Shopbetreiber nach einer Lösung, um die gesetzlichen Anforderungen zu er ...

Weiterlesen

International erfolgreich - so kannst du deinen Shop übersetzen lassen

von Tony Hoyer

Wer seine Produkte auch außerhalb Deutschlands verkaufen möchte, kommt um eine Übersetzung seines Shops nicht herum. Ich zeige dir verschieden Möglichk ...

Weiterlesen
wordcamp woocommerce

Unser Rückblick zum WordCamp Retreat in Soltau - Das neue Standardformat?

von Patrick Posner

Gerade noch war ich mit vielen tollen Menschen aus der Community im Gespräch - und schon schreibe ich meinen Recap zum WordCamp Soltau Retreat. Über eine ...

Weiterlesen

Kommentare

9 Kommentare

  1. #1

    klasse 🙂
    wusste ich noch nicht…

    hab das bisher immer so gelöst:
    @ini_set(‘log_errors’,’On’);
    @ini_set(‘display_errors’,’On’);
    @ini_set(‘error_log’,’/path/wp_logs/php_error.log’);

  2. #2

    @Markus Frank Bültge hat in seinem WordPress-Starter auch eine Implementierung mit ini_set(), noch ein wenig ausführlicher: https://github.com/bueltge/WordPress-Starter/blob/master/wp-config.php

  3. #3

    Danke für den Tipp! Das Snippet habe ich mir abgeheftet. 🙂

    Aber ich bin so ein Kandidat, der gerne vergisst, den Debug-mode wieder auszuschalten. Wie wäre es also, wenn man der Funktion so eine Art Zeitbegrenzung für das Loging mitgibt?. Das könnte man ja auf z.B. 5 min. einstellen. Dann könnte man das im Admin-Backend per Knopfdruck starten und laufen lassen. Wäre doch mal was für ein Plugin…

  4. #4

    @Heiko Mamerow Stimmt, ich würde das auch gerne mit einem Zeitfenster versehen wissen. Vielleicht mag sich jemand an ein Plugin wagen?

  5. #5

    Hallo zusammen,

    danke für den Response! Erst einmal zu den WordPress-Starter: Ich weiß nicht ob es Sinn macht WP_DEBUG_DISPLAY und WP_DEBUG_LOG gleichzeitig zu aktivieren, aber es ist auch nur ein Snippet. 🙂
    Das ini_set( ‘error_log’, … ) wird von WordPress in der load.php seit Version 3.0.0 gesetzt, d.h. es würde das ini_set aus der wp-config.php wieder überschreiben.

    Generell würde ich den debug.log nicht aufheben, sondern sofort wieder löschen. Immerhin hat man über die URL auch Zugriff auf diese Datei und könnte als potentieller Angreifer fehlerhafte Plugins identifizieren.

    Ob ein Plugin Sinn macht um diese Log-Datei z.B. tagweise abzuspeichern, ist fraglich, denn die Action plugins_loaded/muplugins_loaded wird ja auch erst nach vielen anderen Includes / Logiken ausgeführt, welche dann nicht geloggt werden (siehe wp-settings.php).

    Gute wäre es vllt, wenn WordPress hier eine Überprüfung (“Ist error_log schon gesetzt?”) oder eine weitere Konstante (jaja Konstanten sind evil) für die Log-Datei einführen würde.

    Viele Grüße,
    Chris

  6. #7
    metricalart

    Hallo Chris,
    ich habe die einstellungen in der wp-config.php vorgenommen, wie beschrieben.
    es erscheint aber keine log-datei.

    legt sich die log-datei automatisch an? oder muss ich diese separat anlegen?
    Liebe Grüße, Andrea

  7. #8

    Hallöchen Andrea,

    vielen Dank für die Rückfrage. Generell sollte – wenn die Seite Fehler hat – die Datei automatisch angelegt werden. In deinem Fall kann das drei mögliche Gründe haben, wieso diese nicht erscheint:

    1. Deine Seite hat keine Fehler und erzeugt deshalb keine Ausgaben (super! :))
    2. Die Ordnerberechtigungen sind nicht korrekt (teste mal 755 auf wp-content)
    3. Ein anderes Plugin überschreibt hart den Ort für die Ausgabe der Datei (mal nach ini_set() suchen), oder eventuell sogar die komplette Fehlerausgabe (mal nach error_reporting() suchen).

    Ich hoffe es ist ersteres! 🙂

    Viele Grüße,
    Chris

  8. #9

    hallo und guten Abend

    sehr interessanter Beitrag – Sehr hilfreich:

    hab ein Plugin gefunden: https://wordpress.org/plugins/debug/
    wurde vor 2 Wochen neu released:

    Debug can help you to find errors in your wordpress website via editing wp-config.php file. you may enable error reporting by debug plugin. enable email notification on any run time bug in wordpress CMS/website.
    A brief Debug

    Ordered list:

    Debug in wordpress rewrite wp-config.php file via error_log function in php.
    if you don’t have file write permission. so don’t use this plugin.
    keep backup your wp-config file before save plugin setting.

    vg

Ein Pingback

  1. Testumgebung für WordPress einrichten | GlückPress

Schreibe einen Kommentar

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

Du kannst folgende HTML Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">