logwatcher
Logwatcher est un outil sur-mesure d'analyse et de tri automatique des logs LAME MDC pour le support N2.
Les techniciens N2 reçoivent quotidiennement des compte-rendus de suivi d'imports NOSYMAG contenant des centaines de lignes d'erreurs. La plupart ne les concernent pas. Logwatcher analyse ces compte-rendus, identifie les erreurs pertinentes pour le support N2, et génère trois rapports (n2, autres, tout) prêts à être transmis.
Les compte-rendus peuvent être fournis sous deux formes : des fichiers de logs locaux, ou les emails reçus dans une boîte Exchange.
📦 Installation
Prérequis
- Python >= 3.14
uv(recommandé) oupip
Procédure
uv
uv pip install -e ".[dev]"
pip
pip install -e ".[dev]"
Configuration
Copier .env.example et le renommer en .env.
Renseigner les variables :
- EMAIL : adresse de la boîte contenant les mails de compte-rendu
- PASSWORD : mot de passe du compte
- EWS_URL : endpoint EWS du serveur Exchange
- N2_REPORT_RECIPIENTS : destinataires du rapport n2, séparés par des virgules
- N2_REPORT_SUBJECT : objet par défaut du mail de rapport
🚀 Commandes
Analyse de fichiers
Analyser un fichier de logs
logwatcher from-files --input-files chemin/vers/CR_fichier.txt
Analyser tous les logs d'un répertoire
logwatcher from-files --input-dir chemin/vers/dossier
Analyse de mails
Analyser les compte-rendus reçus par mail
logwatcher from-mails --output-dir chemin/vers/sortie
Les mails sont lus dans le dossier Logs de la boîte. Les logs sont extraits du corps du message ou de la pièce jointe CR_*, puis les trois rapports sont générés sur disque. Le rapport n2.log est envoyé automatiquement aux destinataires définis dans .env. Les mails traités sont déplacés dans Logs/Analyzed.
Options globales
--version et --verbose sont des options globales : elles s'appliquent à toutes les commandes.
Affiche la version et quitte
logwatcher --version
Active les logs DEBUG sur la sortie standard
logwatcher --verbose, -v
Le guide complet se trouve dans usage.
🏗️ Architecture
Le détail de l'architecture se trouve dans architecture.
Automatisation
En production, le script tourne sous Windows. Le flux mail est déclenché par le Planificateur de tâches : tous les jours à 07h20, puis toutes les 4 heures pendant 1 jour. Détails dans docs/usage.md.
🧪 Tests
Les tests se trouvent dans tests/. Le projet est couvert à ~95% par les tests unitaires et d'intégration.
Lancer tous les tests
pytest
Lancer un test spécifique (ex: test_parser.py)
pytest tests/test_parser.py
Générer un rapport de couverture
pytest --cov=logwatcher --cov-report=term-missing
📄 Licence
MIT — voir LICENSE.