#!/usr/bin/env node // tools/log-server.js - Serveur simple pour visualiser les logs const express = require('express'); const path = require('path'); const fs = require('fs'); const { exec } = require('child_process'); const app = express(); const PORT = 3001; // Servir les fichiers statiques depuis la racine du projet app.use(express.static(path.join(__dirname, '..'))); // Route pour servir les fichiers de log app.use('/logs', express.static(path.join(__dirname, '..', 'logs'))); // Liste des fichiers de log disponibles app.get('/api/logs', (req, res) => { try { const logsDir = path.join(__dirname, '..', 'logs'); const files = fs.readdirSync(logsDir) .filter(file => file.endsWith('.log')) .map(file => { const filePath = path.join(logsDir, file); const stats = fs.statSync(filePath); return { name: file, size: stats.size, modified: stats.mtime.toISOString(), url: `http://localhost:${PORT}/tools/logs-viewer.html?file=${file}` }; }) .sort((a, b) => new Date(b.modified) - new Date(a.modified)); res.json({ files }); } catch (error) { res.status(500).json({ error: error.message }); } }); // Page d'accueil avec liste des logs app.get('/', (req, res) => { res.send(` Log Viewer Server

📊 SEO Generator - Log Viewer

🔴 Logs en temps réel

Fichiers de log disponibles

Chargement...
`); }); // Fonction pour ouvrir automatiquement le dernier log function openLatestLog() { try { const logsDir = path.join(__dirname, '..', 'logs'); const files = fs.readdirSync(logsDir) .filter(file => file.endsWith('.log')) .map(file => { const filePath = path.join(logsDir, file); const stats = fs.statSync(filePath); return { name: file, modified: stats.mtime }; }) .sort((a, b) => b.modified - a.modified); if (files.length > 0) { const latestFile = files[0].name; const url = `http://localhost:${PORT}/tools/logs-viewer.html?file=${latestFile}`; // Ouvrir dans le navigateur par défaut // Utiliser powershell Start-Process pour ouvrir l'URL dans le navigateur const command = 'powershell.exe Start-Process'; exec(`${command} "${url}"`, (error) => { if (error) { console.log(`⚠️ Impossible d'ouvrir automatiquement: ${error.message}`); console.log(`🌐 Ouvrez manuellement: ${url}`); } else { console.log(`🌐 Ouverture automatique du dernier log: ${latestFile}`); } }); } else { console.log(`📊 Aucun log disponible - accédez à http://localhost:${PORT}/tools/logs-viewer.html`); } } catch (error) { console.log(`⚠️ Erreur lors de l'ouverture: ${error.message}`); } } app.listen(PORT, () => { console.log(`🚀 Log server running at http://localhost:${PORT}`); console.log(`📊 Logs viewer: http://localhost:${PORT}/tools/logs-viewer.html`); console.log(`📁 Logs directory: ${path.join(__dirname, '..', 'logs')}`); // Attendre un peu que le serveur soit prêt, puis ouvrir le navigateur setTimeout(openLatestLog, 1000); });