Aller au contenu

Journalisation

Queuety enregistre chaque événement de tâche et de workflow dans la table de base de données queuety_logs. Il n’y a pas de fichiers journaux. Toutes les entrées peuvent être interrogées via PHP API et CLI.

Types d’événements

Chaque entrée du journal comporte un type d’événement issu de l’énumération LogEvent :

Événement Description
started Exécution de la tâche démarrée
completed Tâche terminée avec succès
failed Une tentative a levé une exception et sera relancée (la dernière tentative n’enregistre que buried)
buried La tâche a épuisé toutes ses tentatives de relance
retried Une nouvelle tentative de la tâche a été planifiée
workflow_started Le workflow a été distribué
workflow_completed Toutes les étapes du workflow sont terminées
workflow_failed Une étape du workflow a échoué définitivement
workflow_paused Le workflow a été mis en pause
workflow_resumed Le workflow a repris
workflow_cancelled Le workflow a été annulé
workflow_rewound Le workflow est revenu à une étape précédente
workflow_forked Le workflow a été bifurqué en un nouveau workflow
workflow_deadline_exceeded Le workflow a dépassé son échéance must_complete_within()
debug Message de niveau débogage (lorsque QUEUETY_DEBUG est activé)

Champs du journal

Chaque entrée du journal contient :

Champ Description
id ID auto-incrémenté
event Chaîne du type d’événement
handler Nom du gestionnaire ou de la classe
job_id ID de la tâche associée (nullable)
workflow_id ID du workflow associé (nullable)
step_index Index de l’étape du workflow (nullable)
attempt Numéro de tentative
duration_ms Durée d’exécution en millisecondes
error_message Message d’erreur en cas d’échec
created_at Horodatage

Interroger les journaux via PHP

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

Interroger les journaux via CLI

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

Conservation des journaux

Les journaux sont conservés jusqu’à leur purge. La constante QUEUETY_LOG_RETENTION_DAYS est lue par Config::log_retention_days(), mais rien ne l’utilise encore : elle ne purge donc rien (#15). La sous-commande wp queuety log purge est également inaccessible (#11).

Purger depuis PHP, par exemple avec votre propre tâche planifiée ou via wp eval :

PHP
$count = Queuety::logger()->purge( 30 );