Zum Inhalt springen

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 );