64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
# Logování
|
||
|
||
Projekt používá více log kanálů pro oddělení různých typů událostí.
|
||
|
||
## Kanály
|
||
|
||
| Kanál | Soubor | Driver | Rotace | Popis |
|
||
|-------|--------|--------|--------|-------|
|
||
| `stack` | *(dle konfigurace)* | stack | – | Výchozí kanál |
|
||
| `single` | `storage/logs/laravel.log` | single | ne | Obecné logy Laravelu |
|
||
| `daily` | `storage/logs/laravel-YYYY-MM-DD.log` | daily | 14 dní | Daily logy |
|
||
| `funnel` | `storage/logs/funnel.log` | single | ne | Funnel/automace logy |
|
||
| `eshop` | `storage/logs/eshop-YYYY-MM-DD.log` | daily | 30 dní | Eshop API requesty |
|
||
|
||
## Co se loguje kde
|
||
|
||
### `funnel.log`
|
||
- `RulesEngine` – vyhodnocování pravidel (`rules_engine.evaluate:*`)
|
||
- Debug konkrétních kontaktů při průchodu automacemi
|
||
|
||
### `eshop-YYYY-MM-DD.log`
|
||
Každý request na `/api/eshop/cart` a `/api/eshop/order`:
|
||
|
||
```json
|
||
{
|
||
"message": "api/eshop/cart",
|
||
"context": {
|
||
"method": "POST",
|
||
"ip": "1.2.3.4",
|
||
"site_key": "abc123",
|
||
"body": {
|
||
"email": "za***@example.cz",
|
||
"currency": "CZK",
|
||
"items": [...]
|
||
},
|
||
"status": 200,
|
||
"response": { "ok": true, "cart_id": 42, ... }
|
||
}
|
||
}
|
||
```
|
||
|
||
> E-mail je automaticky maskován (`za***@example.cz`) z důvodu GDPR.
|
||
|
||
### Laravel Telescope
|
||
Dostupný na `/telescope` – loguje HTTP requesty, queue joby, SQL dotazy, výjimky, emaily. Pouze ve vývojovém prostředí.
|
||
|
||
### Laravel Pulse
|
||
Dostupný na `/pulse` – real-time monitoring výkonu (slow queries, failed jobs, queue depth...).
|
||
|
||
## Rotace logů
|
||
|
||
Pro produkci doporučujeme `logrotate` nebo nastavit `daily` driver s odpovídajícím `days` limitem. Aktuální nastavení:
|
||
- `eshop`: 30 dní
|
||
- `daily` (Laravel): 14 dní
|
||
|
||
## Přidání vlastního logu
|
||
|
||
```php
|
||
use Illuminate\Support\Facades\Log;
|
||
|
||
Log::channel('funnel')->info('my_event', ['data' => $data]);
|
||
Log::channel('eshop')->warning('something_wrong', [...]);
|
||
```
|