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 !
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
// Service de logging en mémoire pour débuguer le timezone
|
|
// Les logs sont stockés en mémoire et accessibles via /api/calendar/timezone-logs
|
|
|
|
class TimezoneLogger {
|
|
constructor() {
|
|
this.logs = [];
|
|
this.maxLogs = 500; // Garder max 500 logs
|
|
}
|
|
|
|
log(category, message, data = null) {
|
|
const entry = {
|
|
timestamp: new Date().toISOString(),
|
|
category,
|
|
message,
|
|
data: data ? JSON.stringify(data, null, 2) : null
|
|
};
|
|
|
|
this.logs.push(entry);
|
|
|
|
// Limiter le nombre de logs
|
|
if (this.logs.length > this.maxLogs) {
|
|
this.logs.shift();
|
|
}
|
|
|
|
// Afficher aussi dans les logs console
|
|
console.log(`[${category}] ${message}`, data || '');
|
|
}
|
|
|
|
getLogs(limit = 100) {
|
|
return this.logs.slice(-limit).reverse();
|
|
}
|
|
|
|
clearLogs() {
|
|
this.logs = [];
|
|
}
|
|
|
|
getLogsByCategory(category, limit = 50) {
|
|
return this.logs
|
|
.filter(log => log.category === category)
|
|
.slice(-limit)
|
|
.reverse();
|
|
}
|
|
}
|
|
|
|
// Singleton
|
|
const timezoneLogger = new TimezoneLogger();
|
|
|
|
module.exports = timezoneLogger;
|