Preskoči na vsebino

Beleženje

Queuety beleži vsak dogodek opravila in poteka dela v tabelo zbirke podatkov queuety_logs. Dnevniških datotek ni. Po vseh vnosih lahko poizvedujete prek PHP API in CLI.

Vrste dogodkov

Vsak vnos v dnevnik ima vrsto dogodka iz enumeracije LogEvent:

Dogodek Opis
started Izvajanje opravila se je začelo
completed Opravilo se je uspešno zaključilo
failed Poskus je sprožil izjemo in bo ponovljen (končni poskus beleži samo buried)
buried Opravilo je izčrpalo vse poskuse ponovitve
retried Opravilo je bilo načrtovano za ponovni poskus
workflow_started Potek dela je bil odpremljen
workflow_completed Vsi koraki poteka dela so se zaključili
workflow_failed Korak poteka dela je trajno spodletel
workflow_paused Potek dela je bil začasno ustavljen
workflow_resumed Potek dela se je nadaljeval
workflow_cancelled Potek dela je bil preklican
workflow_rewound Potek dela je bil vrnjen na prejšnji korak
workflow_forked Iz poteka dela je bil ustvarjen nov potek dela
workflow_deadline_exceeded Potek dela je zamudil rok must_complete_within()
debug Sporočilo na ravni razhroščevanja (ko je omogočen QUEUETY_DEBUG)

Polja dnevnika

Vsak vnos v dnevniku vsebuje:

Polje Opis
id Samodejno povečevanje ID-ja
event Niz vrste dogodka
handler Ime obravnavalnika ali razred
job_id Povezani ID opravila (lahko je prazen)
workflow_id Povezani ID poteka dela (lahko je prazen)
step_index Indeks koraka poteka dela (lahko je prazen)
attempt Številka poskusa
duration_ms Trajanje izvajanja v milisekundah
error_message Sporočilo o napaki, če je prišlo do napake
created_at Časovni žig

Poizvedovanje po dnevnikih prek 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 );

Poizvedovanje po dnevnikih prek CLI

Lupina
# 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

Hramba dnevnikov

Dnevniki se hranijo, dokler jih ne izbrišete. Konstanto QUEUETY_LOG_RETENTION_DAYS prebere Config::log_retention_days(), vendar je za zdaj nič ne uporablja, zato ne izbriše ničesar (#15). Podukazu wp queuety log purge prav tako ni mogoče dostopati (#11).

Izbrišite jih prek PHP, na primer z lastnim načrtovanim opravilom ali z wp eval:

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