로깅
Queuety는 모든 작업 및 워크플로 이벤트를 queuety_logs 데이터베이스 테이블에 기록합니다. 로그 파일은 없습니다. 모든 항목은 PHP API 및 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
로그 보존
로그는 직접 삭제할 때까지 보관됩니다. QUEUETY_LOG_RETENTION_DAYS 상수는 Config::log_retention_days()에서 읽지만 아직 사용하는 곳이 없으므로 아무것도 삭제하지 않습니다(#15). wp queuety log purge 하위 명령에도 접근할 수 없습니다(#11).
예를 들어 자체 예약 작업이나 wp eval을 사용해 PHP에서 삭제하세요.
PHP
$count = Queuety::logger()->purge( 30 );