eZDebug und Protokollierung
Teil 8, Referenz 3. eZDebug (lib/ezutils/classes/ezdebug.php) sammelt Meldungen für die Debug-Ausgabe und schreibt
sie in Logdateien; eZLog (lib/ezfile/classes/ezlog.php) schreibt Zeilen in eine Logdatei Ihrer Wahl. Wie Sie die
Ausgabe lesen, steht in Debug-Ausgabe und Logs für Entwickler
und Erweiterungen debuggen.
Meldungen
Alle sind statisch und nehmen die Meldung, eine Bezeichnung (meist __METHOD__) und optional eine CSS-Klasse für die
Debug-Ausgabe entgegen:
| Methode | Stufe | Logdatei (unter var/log/ oder im Log-Verzeichnis der Website) |
|---|---|---|
eZDebug::writeNotice( $string, $label = "", $backgroundClass = "" ) | Hinweis | notice.log |
eZDebug::writeWarning( $string, $label = "", $backgroundClass = "" ) | Warnung | warning.log |
eZDebug::writeError( $string, $label = "", $backgroundClass = "" ) | Fehler | error.log |
eZDebug::writeDebug( $string, $label = "", $backgroundClass = "" ) | Debug | debug.log |
eZDebug::writeStrict( $string, $label = "", $backgroundClass = "" ) | strict | strict.log |
$string darf ein Array oder Objekt sein; es wird lesbar ausgegeben.
eZDebug::writeNotice( 'Imported 12 items', __METHOD__ );
eZDebug::writeWarning( "Setting [ListSettings] Limit missing, using 10", __METHOD__ );
eZDebug::writeError( "Item $id not found", __METHOD__ );Welche Stufen in den Logdateien landen, legt site.ini [DebugSettings] fest: AlwaysLog[] listet die Stufen auf, die
auch bei ausgeschalteter Debug-Ausgabe geschrieben werden (standardmäßig error).
Zeitmessung
eZDebug::accumulatorStart( 'myext_import', 'myext', 'Import' );
// ... the work ...
eZDebug::accumulatorStop( 'myext_import' );
eZDebug::addTimingPoint( 'myext: before rendering' );| Methode | Zeigt |
|---|---|
accumulatorStart( $key, $inGroup = false, $name = false, $recursive = false ) und accumulatorStop( $key, $recursive = false ) | die zwischen Start und Stopp verbrachte Gesamtzeit, über alle Aufrufe summiert, in den Zeitakkumulatoren der Debug-Ausgabe |
addTimingPoint( $description = "" ) | einen Punkt in der Zeittabelle mit Zeit und Speicher |
Ist die Debug-Ausgabe eingeschaltet?
eZDebug::isDebugEnabled() gibt zurück, ob für diesen Request Debug-Ausgabe gesammelt wird. Verwenden Sie es, um
aufwendige Vorbereitungen von Debug-Meldungen zu überspringen.
Ihre eigene Logdatei
eZLog::write( "Order $orderID sent to the warehouse", 'myext.log' );eZLog::write( $message, $logName = 'common.log', $dir = 'var/log' ) hängt eine Zeile mit Datum an. Übergeben Sie das
Log-Verzeichnis der Website, wenn Ihre Installation eines verwendet (eZSys::varDirectory() . '/log'). Schreiben Sie
nie Passwörter, Tokens oder personenbezogene Daten in Logs.
Die Einstellungen
site.ini [DebugSettings]:
| Einstellung | Wirkung |
|---|---|
DebugOutput | enabled zeigt die Debug-Ausgabe an |
DebugByIP, DebugIPList[] | sie nur den aufgeführten Adressen anzeigen |
DebugByUser, DebugUserIDList[] | sie nur den aufgeführten Benutzer-IDs anzeigen |
AlwaysLog[] | Stufen, die unabhängig von den obigen Einstellungen in Logdateien geschrieben werden |
Schalten Sie die Debug-Ausgabe nur auf Entwicklungskopien oder für Ihre eigene Adresse ein.
Verwandte Seiten
- Zurück: eZINI: Einstellungen lesen
- Weiter: eZDB: die Datenbankschicht
- Debug-Leiste
- Wenn etwas schiefgeht
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.