Lewati ke konten

Pencatatan Log

Queuety mencatat setiap peristiwa pekerjaan dan alur kerja ke tabel basis data queuety_logs. Tidak ada file log. Semua entri dapat dikueri melalui PHP API dan CLI.

Jenis peristiwa

Setiap entri log memiliki jenis peristiwa dari enum LogEvent:

Peristiwa Deskripsi
started Eksekusi pekerjaan dimulai
completed Pekerjaan berhasil diselesaikan
failed Suatu percobaan menimbulkan pengecualian dan akan dicoba lagi (percobaan terakhir hanya mencatat buried)
buried Semua percobaan ulang pekerjaan telah habis
retried Pekerjaan dijadwalkan untuk dicoba lagi
workflow_started Alur kerja dikirim
workflow_completed Semua langkah alur kerja selesai
workflow_failed Langkah alur kerja gagal secara permanen
workflow_paused Alur kerja dijeda
workflow_resumed Alur kerja dilanjutkan
workflow_cancelled Alur kerja dibatalkan
workflow_rewound Alur kerja dikembalikan ke langkah sebelumnya
workflow_forked Alur kerja dicabangkan menjadi alur kerja baru
workflow_deadline_exceeded Alur kerja melewati tenggat must_complete_within()
debug Pesan tingkat debug (saat QUEUETY_DEBUG diaktifkan)

Kolom log

Setiap entri log memuat:

Kolom Deskripsi
id ID yang bertambah otomatis
event String jenis peristiwa
handler Nama atau kelas handler
job_id ID pekerjaan terkait (bisa null)
workflow_id ID alur kerja terkait (bisa null)
step_index Indeks langkah alur kerja (bisa null)
attempt Nomor percobaan
duration_ms Durasi eksekusi dalam milidetik
error_message Pesan kesalahan jika gagal
created_at Stempel waktu

Mengueri log melalui 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 );

Mengueri log melalui 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

Retensi log

Log disimpan sampai Anda menghapusnya. Konstanta QUEUETY_LOG_RETENTION_DAYS dibaca oleh Config::log_retention_days(), tetapi belum digunakan, jadi konstanta itu tidak menghapus apa pun (#15). Subperintah wp queuety log purge juga tidak dapat dijalankan (#11).

Hapus melalui PHP, misalnya dari tugas terjadwal Anda sendiri atau dengan wp eval:

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