3.7 KiB
3.7 KiB
🚀 Logging System - Quick Start Guide
Installation
Le système de logging est déjà intégré dans ObsiViewer. Aucune installation supplémentaire n'est nécessaire.
Démarrage Rapide
1. Vérifier la Configuration
Ouvrir src/core/logging/environment.ts
et vérifier :
export const environment = {
logging: {
enabled: true, // ✅ Activé
endpoint: '/api/log', // ✅ Endpoint correct
},
};
2. Implémenter le Backend
Créer l'endpoint /api/log
dans votre backend :
Node.js/Express :
app.post('/api/log', express.json(), (req, res) => {
const logs = Array.isArray(req.body) ? req.body : [req.body];
logs.forEach(log => {
console.log(`[${log.event}]`, log.data);
});
res.json({ ok: true });
});
Python/Flask :
@app.route('/api/log', methods=['POST'])
def log():
logs = request.json if isinstance(request.json, list) else [request.json]
for log in logs:
print(f"[{log['event']}] {log.get('data', {})}")
return {'ok': True}
3. Démarrer l'Application
npm run dev
4. Tester
- Ouvrir DevTools → Network → Filter
/api/log
- Effectuer des actions :
- Naviguer entre les vues
- Effectuer une recherche
- Ouvrir les bookmarks
- Changer le thème
- Observer : Les requêtes POST vers
/api/log
Exemple de Log Reçu
{
"ts": "2025-10-05T14:21:33.123Z",
"level": "info",
"app": "ObsiViewer",
"sessionId": "9b2c8f1f-7e2f-4d6f-9f5b-0e3e1c9f7c3a",
"userAgent": "Mozilla/5.0...",
"context": {
"route": "/search?q=test",
"vault": "Main",
"theme": "dark",
"version": "0.0.0"
},
"event": "SEARCH_EXECUTED",
"data": {
"query": "test",
"queryLength": 4
}
}
Événements Disponibles
Événement | Quand | Données |
---|---|---|
APP_START |
Au démarrage | viewport dimensions |
APP_STOP |
Avant fermeture | timestamp |
NAVIGATE |
Changement de route | from, to |
SEARCH_EXECUTED |
Recherche effectuée | query, queryLength |
BOOKMARKS_OPEN |
Ouverture bookmarks | - |
BOOKMARKS_MODIFY |
Ajout/suppression bookmark | action, path |
GRAPH_VIEW_OPEN |
Ouverture graph view | - |
GRAPH_VIEW_SETTINGS_CHANGE |
Modification settings graph | changes |
CALENDAR_SEARCH_EXECUTED |
Recherche calendrier | resultsCount |
THEME_CHANGE |
Changement de thème | from, to |
Ajouter des Logs Personnalisés
Dans n'importe quel composant :
import { inject } from '@angular/core';
import { LogService } from './core/logging/log.service';
export class MyComponent {
private logService = inject(LogService);
onCustomAction(): void {
this.logService.log('CUSTOM_EVENT', {
action: 'button_click',
buttonId: 'submit',
});
}
}
Désactiver le Logging
Dans src/core/logging/environment.ts
:
export const environment = {
logging: {
enabled: false, // ❌ Désactivé
},
};
Troubleshooting
Logs non envoyés ?
- ✅ Vérifier
environment.logging.enabled = true
- ✅ Vérifier que
/api/log
existe - ✅ Vérifier que l'endpoint retourne status 2xx
- ✅ Vérifier la console pour erreurs
Circuit breaker ouvert ?
- Attendre 30 secondes
- Vérifier la disponibilité du backend
- Vérifier les logs backend pour erreurs
Documentation Complète
Pour plus de détails, voir :
- 📖 README-logging.md - Documentation complète
- 📋 LOGGING_IMPLEMENTATION.md - Résumé d'implémentation
Support
Pour toute question ou problème, consulter la documentation ou ouvrir une issue.