
# Καταγραφή

Το Queuety καταγράφει κάθε συμβάν εργασίας και ροής εργασίας στον πίνακα βάσης δεδομένων `queuety_logs`. Δεν υπάρχουν αρχεία καταγραφής. Μπορείτε να αναζητήσετε όλες τις εγγραφές μέσω των PHP API και CLI.

## Τύποι συμβάντων

Κάθε εγγραφή καταγραφής έχει έναν τύπο συμβάντος από το enum `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` | Αυτόματα αυξανόμενο αναγνωριστικό |
| `event` | Συμβολοσειρά τύπου συμβάντος |
| `handler` | Όνομα ή κλάση χειριστή |
| `job_id` | Σχετικό αναγνωριστικό εργασίας (nullable) |
| `workflow_id` | Σχετικό αναγνωριστικό ροής εργασίας (nullable) |
| `step_index` | Δείκτης βήματος ροής εργασίας (nullable) |
| `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

```bash
# 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](https://github.com/inline0/queuety/issues/15)). Δεν είναι επίσης δυνατή η πρόσβαση στην υποεντολή `wp queuety log purge` ([#11](https://github.com/inline0/queuety/issues/11)).

Διαγράψτε τις καταγραφές από το PHP, για παράδειγμα από τη δική σας προγραμματισμένη εργασία ή με το `wp eval`:

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