Logging
Statut
Document de cadrage architecture — v1.0 — relu le 2026-05-10.
Configuration actuelle
Le logging est géré par Monolog via la configuration Laravel standard (config/logging.php).
Canal par défaut
| Environnement | Canal recommandé | Niveau |
|---|---|---|
| Développement | stack / single | debug |
| Production | daily | error |
La configuration de production utilise LOG_CHANNEL=daily et LOG_LEVEL=error (défini dans .env).
Canaux disponibles
| Canal | Driver | Usage |
|---|---|---|
single | Fichier unique | Développement |
daily | Fichier rotatif (14j) | Production |
stack | Agrégation de canaux | Multi-destination |
stderr | stderr | Conteneurs |
syslog | Syslog système | Serveurs |
slack | Webhook Slack | Alertes critiques |
null | Aucun output | Tests |
Rotation des logs
Le canal daily conserve les logs 14 jours par défaut (paramètre LOG_DAILY_DAYS).
Les fichiers sont stockés dans storage/logs/laravel.log.
Logs applicatifs existants
Le code produit des logs explicites dans certains points clés, par exemple :
Log::info('Token échangé', ['user_id' => $currentUser->userId, 'origin' => $origin]);
Les événements d'authentification (échange de token Supabase → Sanctum) sont tracés avec le contexte utilisateur.
Règles de logging
- Ne jamais logger de secrets, tokens ou données personnelles brutes.
- Toujours inclure un contexte structuré (
user_id,origin, action). - Distinguer les niveaux :
debug(dev),info(audit),warning(anomalie),error(erreur traitée),critical(alerte). - Ne pas logger les erreurs de validation (422) comme des erreurs — ce sont des cas normaux.
- Logger les 500 avec le contexte suffisant pour diagnostiquer sans exposition de données sensibles.
Vision cible
| Aspect | État actuel | Cible |
|---|---|---|
| Destination | Fichiers locaux | Fichiers + agrégateur centralisé |
| Format | Texte Monolog | JSON structuré |
| Alerte | Non configurée | Slack / PagerDuty sur critical |
| Rétention | 14 jours | Politique définie par criticité |
| Observabilité | Logs manuels | Corrélation avec traces et métriques |
Points à clarifier
- Service de centralisation des logs (Papertrail, Logtail, Datadog, Grafana Loki).
- Format JSON structuré pour faciliter les requêtes.
- Alertes automatiques sur les erreurs critiques.
- Stratégie de rétention par niveau.
- Corrélation logs / métriques / traces (observabilité complète).