Protokollierung
Queuety protokolliert alle Job- und Workflow-Ereignisse in der Datenbanktabelle queuety_logs. Es gibt keine Protokolldateien. Alle Einträge lassen sich über PHP API und CLI abfragen.
Ereignistypen
Jeder Protokolleintrag hat einen Ereignistyp aus dem Enum LogEvent:
| Ereignis | Beschreibung |
|---|---|
started |
Jobausführung gestartet |
completed |
Job erfolgreich abgeschlossen |
failed |
Ein Versuch ist fehlgeschlagen und wird wiederholt (beim letzten Versuch wird nur buried protokolliert) |
buried |
Alle Wiederholungsversuche des Jobs sind ausgeschöpft |
retried |
Job zur Wiederholung eingeplant |
workflow_started |
Workflow ausgelöst |
workflow_completed |
Alle Workflow-Schritte abgeschlossen |
workflow_failed |
Workflow-Schritt dauerhaft fehlgeschlagen |
workflow_paused |
Workflow pausiert |
workflow_resumed |
Workflow fortgesetzt |
workflow_cancelled |
Workflow abgebrochen |
workflow_rewound |
Workflow zu einem früheren Schritt zurückgesetzt |
workflow_forked |
Workflow in einen neuen Workflow verzweigt |
workflow_deadline_exceeded |
Deadline des Workflows must_complete_within() verpasst |
debug |
Meldung auf Debug-Ebene (wenn QUEUETY_DEBUG aktiviert ist) |
Protokollfelder
Jeder Protokolleintrag enthält:
| Feld | Beschreibung |
|---|---|
id |
Automatisch hochgezählte ID |
event |
Ereignistyp als Zeichenfolge |
handler |
Handlername oder -klasse |
job_id |
Zugehörige Job-ID (darf null sein) |
workflow_id |
Zugehörige Workflow-ID (darf null sein) |
step_index |
Index des Workflow-Schritts (darf null sein) |
attempt |
Versuchsnummer |
duration_ms |
Ausführungsdauer in Millisekunden |
error_message |
Fehlermeldung bei Fehlschlag |
created_at |
Zeitstempel |
Protokolle über PHP abfragen
PHP
$logger = Queuety::logger();
// Logs for a specific job
$logs = $logger->for_job( 42 );
// Logs for a specific workflow
$logs = $logger->for_workflow( 7 );
// Logs for a specific handler
$logs = $logger->for_handler( 'send_email', 50 );
// Logs for a specific event type
$logs = $logger->for_event( \Queuety\Enums\LogEvent::Failed, 50 );
// Logs since a datetime
$logs = $logger->since( new \DateTimeImmutable( '-1 hour' ), 100 );
Protokolle über CLI abfragen
Shell
# Recent logs (last 24 hours)
wp queuety log
# Logs for a specific job
wp queuety log --job=42
# Logs for a specific workflow
wp queuety log --workflow=7
# Logs for a handler
wp queuety log --handler=send_email
# Logs for an event type
wp queuety log --event=failed
# Logs since a datetime
wp queuety log --since="2025-01-01 00:00:00"
# Custom limit and format
wp queuety log --limit=100 --format=json
Aufbewahrungsdauer der Protokolle
Protokolle bleiben erhalten, bis du sie bereinigst. Die Konstante QUEUETY_LOG_RETENTION_DAYS wird von Config::log_retention_days() ausgelesen, aber noch nicht verwendet und löscht daher nichts (#15). Auch das Unterkommando wp queuety log purge ist nicht erreichbar (#11).
Bereinige Protokolle über PHP, zum Beispiel mit einer eigenen geplanten Aufgabe oder mit wp eval:
PHP
$count = Queuety::logger()->purge( 30 );