본문으로 건너뛰기

로깅

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