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