コンテンツへスキップ

ログ記録

Queuetyはすべてのジョブとワークフローのイベントをqueuety_logsデータベーステーブルに記録します。ログファイルはありません。すべてのエントリーはPHPAPIとCLIからクエリできます。

イベントの種類

すべてのログエントリーには、LogEvent列挙型のイベントタイプがあります:

イベント 説明
started ジョブの実行を開始
completed ジョブが正常に完了
failed 試行中に例外が発生し、再試行される(最終試行ではburiedのみを記録)
buried ジョブのすべての再試行を使い切った
retried ジョブの再試行をスケジュール
workflow_started ワークフローをディスパッチ
workflow_completed ワークフローのすべてのステップが完了
workflow_failed ワークフローのステップが恒久的に失敗
workflow_paused ワークフローを一時停止
workflow_resumed ワークフローを再開
workflow_cancelled ワークフローをキャンセル
workflow_rewound ワークフローを前のステップに巻き戻し
workflow_forked ワークフローを新しいワークフローに分岐
workflow_deadline_exceeded ワークフローのmust_complete_within()期限を超過
debug デバッグレベルのメッセージ(QUEUETY_DEBUGが有効な場合)

ログのフィールド

各ログエントリーには次の情報が含まれます:

フィールド 説明
id 自動インクリメントID
event イベントタイプの文字列
handler ハンドラー名またはクラス
job_id 関連するジョブID(null可)
workflow_id 関連するワークフローID(null可)
step_index ワークフローのステップ番号(null可)
attempt 試行回数
duration_ms 実行時間(ミリ秒)
error_message 失敗時のエラーメッセージ
created_at タイムスタンプ

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

CLI経由でログをクエリする

シェル
# 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

ログの保持

ログは消去するまで保持されます。Config::log_retention_days()はQUEUETY_LOG_RETENTION_DAYS定数を読み取りますが、まだ何も使用していないため、ログは消去されません(#15)。また、wp queuety log purgeサブコマンドも実行できません(#11)。

たとえば、スケジュールされたタスクやwp evalを使って、PHPから消去します:

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