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