
# Naplózás

A Queuety minden feladat- és munkafolyamat-eseményt a `queuety_logs` adatbázistáblába naplóz. Nincsenek naplófájlok. Minden bejegyzés lekérdezhető a PHP API és a CLI használatával.

## Eseménytípusok

Minden naplóbejegyzés az `LogEvent` felsorolás egy eseménytípusát tartalmazza:

| Esemény | Leírás |
|---|---|
| `started` | A feladat végrehajtása elindult |
| `completed` | A feladat sikeresen befejeződött |
| `failed` | Egy próbálkozás kivételt dobott, ezért újrapróbálás következik (az utolsó próbálkozás csak `buried` eseményt naplóz) |
| `buried` | A feladat minden újrapróbálási kísérletet kimerített |
| `retried` | A feladat újrapróbálásra lett ütemezve |
| `workflow_started` | A munkafolyamat el lett indítva |
| `workflow_completed` | A munkafolyamat minden lépése befejeződött |
| `workflow_failed` | A munkafolyamat egyik lépése véglegesen meghiúsult |
| `workflow_paused` | A munkafolyamat szüneteltetve lett |
| `workflow_resumed` | A munkafolyamat folytatódott |
| `workflow_cancelled` | A munkafolyamat megszakadt |
| `workflow_rewound` | A munkafolyamat visszaállt egy korábbi lépésre |
| `workflow_forked` | A munkafolyamatból új munkafolyamat vált le |
| `workflow_deadline_exceeded` | A munkafolyamat elmulasztotta a `must_complete_within()` határidőt |
| `debug` | Hibakeresési szintű üzenet (ha a `QUEUETY_DEBUG` engedélyezve van) |

## Naplómezők

Minden naplóbejegyzés a következőket tartalmazza:

| Mező | Leírás |
|---|---|
| `id` | Automatikusan növekvő azonosító |
| `event` | Eseménytípus-karakterlánc |
| `handler` | A kezelő neve vagy osztálya |
| `job_id` | Kapcsolódó feladatazonosító (lehet null) |
| `workflow_id` | Kapcsolódó munkafolyamatazonosító (lehet null) |
| `step_index` | Munkafolyamat-lépés indexe (lehet null) |
| `attempt` | Próbálkozás száma |
| `duration_ms` | Végrehajtás időtartama ezredmásodpercben |
| `error_message` | Hiba esetén a hibaüzenet |
| `created_at` | Időbélyeg |

## Naplók lekérdezése a PHP segítségével

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

## Naplók lekérdezése a CLI segítségével

```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
```

## Naplók megőrzése

A naplókat addig őrizzük meg, amíg nem törli őket. A `QUEUETY_LOG_RETENTION_DAYS` állandót a `Config::log_retention_days()` beolvassa, de egyelőre semmi sem használja, ezért nem töröl semmit ([#15](https://github.com/inline0/queuety/issues/15)). A `wp queuety log purge` alparancs sem érhető el ([#11](https://github.com/inline0/queuety/issues/11)).

Törölje a naplókat a PHP segítségével, például saját ütemezett feladatából vagy a `wp eval` használatával:

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