Siirry sisältöön

Lokikirjaus

Queuety kirjaa jokaisen työ- ja työnkulkutapahtuman tietokantatauluun queuety_logs. Lokitiedostoja ei ole. Kaikista merkinnöistä voi tehdä kyselyjä toiminnoilla PHP API ja CLI.

Tapahtumatyypit

Jokaisella lokimerkinnällä on tapahtumatyyppi enum-arvoista LogEvent:

Tapahtuma Kuvaus
started Työn suoritus alkoi
completed Työ valmistui onnistuneesti
failed Yritys aiheutti poikkeuksen ja työ yritetään uudelleen (viimeisellä yrityksellä kirjataan vain buried)
buried Työn kaikki uudelleenyritysyritykset käytettiin loppuun
retried Työ ajastettiin uudelleen yritettäväksi
workflow_started Työnkulku käynnistettiin
workflow_completed Kaikki työnkulun vaiheet valmistuivat
workflow_failed Työnkulun vaihe epäonnistui pysyvästi
workflow_paused Työnkulku keskeytettiin
workflow_resumed Työnkulkua jatkettiin
workflow_cancelled Työnkulku peruutettiin
workflow_rewound Työnkulku palautettiin aiempaan vaiheeseen
workflow_forked Työnkulusta haarautettiin uusi työnkulku
workflow_deadline_exceeded Työnkulun must_complete_within()-määräaika ylittyi
debug Virheenkorjauksen tasoinen viesti (kun QUEUETY_DEBUG on käytössä)

Lokikentät

Jokainen lokimerkintä sisältää:

Kenttä Kuvaus
id Automaattisesti kasvava tunnus
event Tapahtumatyypin merkkijono
handler Käsittelijän nimi tai luokka
job_id Liittyvän työn tunnus (voi olla null)
workflow_id Liittyvän työnkulun tunnus (voi olla null)
step_index Työnkulun vaiheen indeksi (voi olla null)
attempt Yrityksen numero
duration_ms Suorituksen kesto millisekunteina
error_message Virheilmoitus epäonnistumisen yhteydessä
created_at Aikaleima

Lokien kysely PHPn kautta

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

Lokien kysely CLIn kautta

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

Lokien säilytys

Lokeja säilytetään, kunnes tyhjennät ne. QUEUETY_LOG_RETENTION_DAYS-vakion lukee Config::log_retention_days(), mutta mikään ei vielä käytä sitä, joten se ei tyhjennä mitään (#15). Myöskään alikomentoa wp queuety log purge ei voi käyttää (#11).

Tyhjennä lokit PHPsta esimerkiksi omasta ajastetusta tehtävästäsi tai komennolla wp eval:

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