Vai al contenuto

Registrazione dei log

Queuety registra ogni evento di job e workflow nella tabella queuety_logs del database. Non esistono file di log. Tutte le voci possono essere interrogate tramite PHP API e CLI.

Tipi di evento

Ogni voce di log ha un tipo di evento definito dall'enum LogEvent:

Evento Descrizione
started Esecuzione del job avviata
completed Job completato correttamente
failed Un tentativo ha generato un'eccezione e verrà ripetuto (il tentativo finale registra solo buried)
buried Il job ha esaurito tutti i tentativi di ripetizione
retried Il job è stato pianificato per un nuovo tentativo
workflow_started Il workflow è stato avviato
workflow_completed Tutti i passaggi del workflow sono terminati
workflow_failed Il passaggio del workflow è fallito definitivamente
workflow_paused Il workflow è stato messo in pausa
workflow_resumed Il workflow è stato ripreso
workflow_cancelled Il workflow è stato annullato
workflow_rewound Il workflow è stato riportato a un passaggio precedente
workflow_forked Il workflow è stato diramato in un nuovo workflow
workflow_deadline_exceeded Il workflow non ha rispettato la scadenza must_complete_within()
debug Messaggio a livello di debug (quando QUEUETY_DEBUG è attivo)

Campi dei log

Ogni voce di log contiene:

Campo Descrizione
id ID incrementale automatico
event Stringa del tipo di evento
handler Nome o classe del gestore
job_id ID del job associato (nullable)
workflow_id ID del workflow associato (nullable)
step_index Indice del passaggio del workflow (nullable)
attempt Numero del tentativo
duration_ms Durata dell'esecuzione in millisecondi
error_message Messaggio di errore in caso di fallimento
created_at Timestamp

Interrogare i log tramite 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 );

Interrogare i log tramite 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

Conservazione dei log

I log vengono conservati finché non li eliminate. La costante QUEUETY_LOG_RETENTION_DAYS viene letta da Config::log_retention_days(), ma al momento non viene usata, quindi non elimina nulla (#15). Non è possibile raggiungere neppure il sottocomando wp queuety log purge (#11).

Eliminate i log da PHP, ad esempio tramite un'attività pianificata personalizzata o con wp eval:

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