mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
NOUVEAU SYSTÈME DE LOGGING: Au lieu d'utiliser les logs Docker (inaccessibles depuis Portainer), création d'un système de logs accessible directement dans le navigateur. FICHIERS AJOUTÉS: 1. services/timezone-logger.js: - Service singleton qui stocke les logs en mémoire - Limite à 500 logs max (pour éviter les fuites mémoire) - Méthodes: log(), getLogs(), clearLogs(), getLogsByCategory() 2. routes/timezone-logs.routes.js: - GET /api/timezone-logs - Logs en JSON - GET /api/timezone-logs/html - Interface web avec design moderne - GET /api/timezone-logs/category/:cat - Filtrer par catégorie - POST /api/timezone-logs/clear - Vider les logs 3. VOIR-LOGS-TIMEZONE.md: - Documentation complète du système - Procédure pas à pas - Explications des logs attendus FICHIERS MODIFIÉS: 1. config/database.js: - Utilise timezoneLogger au lieu de logger.debug - Catégorie: PARSER 2. routes/calendar.routes.js: - Logs avec timezoneLogger lors de la synchronisation - Catégorie: SYNC (synchronisation Google Calendar) - Catégorie: GET (envoi au frontend) 3. server.js: - Ajout de la route /api/timezone-logs INTERFACE WEB DE LOGS: Accessible sur: http://localhost:2222/api/timezone-logs/html Fonctionnalités: - ✅ Design moderne avec dégradés et animations - ✅ Statistiques en temps réel (total, par catégorie) - ✅ Filtrage par catégorie (SYNC, PARSER, GET) - ✅ Auto-refresh toutes les 3 secondes - ✅ Code couleur par catégorie - ✅ Affichage des données JSON formatées - ✅ Bouton pour vider les logs - ✅ Responsive, fonctionne sur mobile UTILISATION: 1. Rebuild: docker-compose build --no-cache notes-app 2. Ouvrir: http://localhost:2222/api/timezone-logs/html 3. Synchroniser Google Calendar 4. Observer les logs en temps réel dans le navigateur Plus besoin d'accès aux logs Docker/Portainer !
4.7 KiB
4.7 KiB
🔍 VOIR LES LOGS DE TIMEZONE DIRECTEMENT DANS VOTRE NAVIGATEUR
Ce système vous permet de voir en temps réel ce qui se passe avec les dates, sans avoir besoin d'accès aux logs Docker.
🚀 COMMENT UTILISER
ÉTAPE 1 : Rebuild et redémarrage
docker-compose down
docker-compose build --no-cache notes-app
docker-compose up -d
ÉTAPE 2 : Supprimer les anciens événements
docker exec noteflow-postgres psql -U noteflow -d noteflow -p 5499 \
-c "DELETE FROM calendar_events"
ÉTAPE 3 : Ouvrir la page de logs
Ouvrez votre navigateur et allez sur :
http://localhost:2222/api/timezone-logs/html
Laissez cette page ouverte dans un onglet.
ÉTAPE 4 : Synchroniser avec Google Calendar
- Dans un autre onglet, ouvrez http://localhost:2222
- Allez dans Admin → Google Calendar
- Cliquez sur 🔄 Synchroniser
ÉTAPE 5 : Regarder les logs apparaître
Retournez sur l'onglet des logs (/api/timezone-logs/html) et vous verrez :
- 🟣 SYNC : Ce que Google Calendar renvoie
- 🟠 PARSER : Comment PostgreSQL parse les dates
- 🟢 GET : Ce qui est envoyé au frontend
📊 FONCTIONNALITÉS DE LA PAGE DE LOGS
Boutons en haut :
- 🔄 Rafraîchir : Recharger la page pour voir les nouveaux logs
- 🗑️ Vider les logs : Supprimer tous les logs
- ⏱️ Auto-refresh : Activer le rafraîchissement automatique toutes les 3 secondes
- Filtres : Afficher seulement les logs d'une catégorie (Tous, Sync, Parser, Get)
Statistiques affichées :
- Total de logs
- Nombre de logs par catégorie
Chaque log affiche :
- ⏰ Timestamp (date et heure exacte)
- 🏷️ Catégorie (SYNC, PARSER, GET)
- 📝 Message descriptif
- 📦 Données JSON (si disponibles)
🔍 EXEMPLE DE LOGS ATTENDUS
Lors de la synchronisation :
[SYNC] 📅 Événement: "Dr Julian Wlodarczak"
{
"googleStartBrut": {
"dateTime": "2024-11-17T10:20:00+01:00"
},
"startTimeExtrait": "2024-11-17T10:20:00+01:00",
"type": "string",
"isAllDay": false
}
[SYNC] → Conversion: new Date("2024-11-17T10:20:00+01:00") = 2024-11-17T09:20:00.000Z
{
"affichageParis": "17/11/2024 10:20:00",
"heureParisSeule": "10:20"
}
Lors du parsing PostgreSQL :
[PARSER] Input sans TZ: "2024-11-17 09:20:00" → ISO+Z: "2024-11-17T09:20:00Z" → Output: "2024-11-17T09:20:00.000Z"
Lors de l'envoi au frontend :
[GET] 📤 Envoi au frontend: "Dr Julian Wlodarczak"
{
"start_time_DB": "2024-11-17T09:20:00.000Z",
"type": "string"
}
[GET] → Frontend recevra: 2024-11-17T09:20:00.000Z
{
"apresNewDate": "2024-11-17T09:20:00.000Z",
"affichageParisAttendu": "10:20"
}
✅ CE QU'IL FAUT VÉRIFIER
Dans les logs, vérifiez que :
- ✅ Google renvoie :
"2024-11-17T10:20:00+01:00"(10:20 heure de Paris) - ✅ Conversion UTC :
2024-11-17T09:20:00.000Z(09:20 UTC = 10:20 Paris) - ✅ PostgreSQL stocke :
"2024-11-17 09:20:00"(09:20 UTC) - ✅ Parser normalise :
"2024-11-17T09:20:00.000Z" - ✅ Frontend reçoit :
"2024-11-17T09:20:00.000Z" - ✅ Affichage attendu :
"10:20"
🎨 COULEURS DANS L'INTERFACE
- 🟣 Violet : Logs de synchronisation (SYNC)
- 🟠 Orange : Logs du parser PostgreSQL (PARSER)
- 🟢 Vert : Logs d'envoi au frontend (GET)
📱 ACCESSIBLE DEPUIS PORTAINER
Si vous utilisez Portainer :
- Ouvrez Portainer
- Cliquez sur votre container
notes-app - Dans le navigateur, allez sur :
http://localhost:2222/api/timezone-logs/html
Vous pouvez aussi accéder à la page depuis n'importe quel appareil sur le même réseau :
http://VOTRE_IP:2222/api/timezone-logs/html
🆘 SI VOUS VOYEZ UN DÉCALAGE
Prenez une capture d'écran de la page de logs et cherchez :
- ❌ Où l'heure change de 10:20 à 11:20
- ❌ Quelle étape cause le décalage (SYNC, PARSER, ou GET)
Envoyez-moi la capture et je pourrai corriger le problème exact.
🔄 AUTRES ENDPOINTS DISPONIBLES
Logs en JSON :
GET http://localhost:2222/api/timezone-logs
Vider les logs :
POST http://localhost:2222/api/timezone-logs/clear
Logs d'une catégorie :
GET http://localhost:2222/api/timezone-logs/category/SYNC
GET http://localhost:2222/api/timezone-logs/category/PARSER
GET http://localhost:2222/api/timezone-logs/category/GET
💡 ASTUCE
Activez l'Auto-refresh pour voir les logs apparaître en temps réel pendant que vous synchronisez !