# 📋 Système de Logs Dipilan

## Configuration des niveaux de log

Le système de logs peut être configuré pour ne logger que certains types d'événements.

### Niveaux disponibles (du moins au plus important)

1. **DEBUG** - Informations de débogage détaillées
2. **INFO** - Informations générales (toutes les requêtes)
3. **SUCCESS** - Succès d'envoi d'emails
4. **WARNING** - Avertissements
5. **ERROR** - Erreurs uniquement (recommandé en production)

### Configuration dans config.php

```php
// Logger uniquement les erreurs (recommandé en production)
define('LOG_MIN_LEVEL', 'ERROR');

// Logger tout (utile pour debug)
define('LOG_MIN_LEVEL', 'INFO');
```

## Ce qui est loggé selon le niveau

### Niveau ERROR (recommandé en production)
✅ Commandes cURL invalides (paramètres manquants)
✅ Erreurs SMTP (connexion, authentification, envoi)
✅ Erreurs de connexion au serveur SMTP
✅ Exceptions PHP

❌ Requêtes réussies
❌ Informations de configuration
❌ Debug SMTP

### Niveau INFO (pour debug)
✅ Toutes les requêtes reçues
✅ Configuration SMTP utilisée
✅ Destinataires configurés
✅ Succès d'envoi
✅ Erreurs (comme ERROR)

## Types d'erreurs loggées

### 1. Commandes cURL invalides
```
[ERROR] Commande cURL invalide - Paramètres manquants
```
**Cause :** La commande cURL ne contient pas tous les paramètres requis (name, mails, mess)

**Solution :** Régénérer la commande depuis dipilan.php ou generate-curl.php

### 2. Erreurs SMTP
```
[SMTP_ERROR] SMTP Error: Could not authenticate
```
**Cause :** Problème d'authentification SMTP (identifiants incorrects, compte bloqué, etc.)

**Solution :** Vérifier config.php, les identifiants SMTP, et que le compte est actif

### 3. Erreurs de connexion
```
[CONNECTION_ERROR] Impossible de se connecter à smtp.example.com:587
```
**Cause :** Serveur SMTP injoignable (port bloqué, serveur down, etc.)

**Solution :** Vérifier le serveur SMTP, le port, et les règles firewall

## Fichiers de logs

### Emplacement
```
/home/digitec/yucca/logs/dipilan-alerts.log
```

### Consulter les logs

#### Via l'interface web
- **Monitoring temps réel** : https://crm.digit-e.com/monitor-dipilan.php?auto=5
- **Tous les logs** : https://crm.digit-e.com/view-logs.php

#### Via SSH
```bash
# Voir les dernières lignes
tail -f /home/digitec/yucca/logs/dipilan-alerts.log

# Voir uniquement les erreurs
grep ERROR /home/digitec/yucca/logs/dipilan-alerts.log

# Compter les erreurs
grep -c ERROR /home/digitec/yucca/logs/dipilan-alerts.log
```

## Rotation des logs

Pour éviter que le fichier de log devienne trop gros, vous pouvez configurer une rotation :

```bash
# Créer un fichier de rotation
sudo nano /etc/logrotate.d/dipilan

# Contenu :
/home/digitec/yucca/logs/dipilan-alerts.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}
```

## Désactiver complètement les logs

Pour désactiver les logs (non recommandé) :

```php
// Dans dipilan.php, commentez cette ligne :
// $logger = new DipilanLogger(null, $minLevel);
```

## Exemples de logs

### Commande cURL invalide (ERROR)
```
[2026-07-30 10:30:15] [ERROR] Commande cURL invalide - Paramètres manquants | {"missing":"mess","received":["name","mails","machine"],"url":"/dipilan?name=XXX&mails=XXX&machine=TEST"}
```

### Erreur SMTP (SMTP_ERROR)
```
[2026-07-30 10:31:20] [SMTP_ERROR] SMTP Error: Could not authenticate | {"recipients":"test@example.com","subject":"ALERTE Test"}
```

### Succès (SUCCESS) - uniquement si LOG_MIN_LEVEL = INFO ou moins
```
[2026-07-30 10:32:45] [SUCCESS] Email envoyé avec succès | {"recipients":"a.gaillard-laxague@digit-e.com, s.pawelec@digit-e.com","subject":"ALERTE Client Test","machine":"TEST-01"}
```
