# 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é) ou `pip` ### Procédure #### uv ```bash uv pip install -e ".[dev]" ``` #### pip ```bash 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 ```bash logwatcher from-files --input-files chemin/vers/CR_fichier.txt ``` #### Analyser tous les logs d'un répertoire ```bash logwatcher from-files --input-dir chemin/vers/dossier ``` ### Analyse de mails #### Analyser les compte-rendus reçus par mail ```bash 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 ```bash logwatcher --version ``` #### Active les logs DEBUG sur la sortie standard ```bash logwatcher --verbose, -v ``` Le guide complet se trouve dans [usage](docs/usage.md). --- ## 🏗️ Architecture Le détail de l'architecture se trouve dans [architecture](docs/architecture.md). --- ## 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 ```bash pytest ``` ### Lancer un test spécifique (ex: `test_parser.py`) ```bash pytest tests/test_parser.py ``` ### Générer un rapport de couverture ```bash pytest --cov=logwatcher --cov-report=term-missing ``` --- ## 📄 Licence MIT — voir [LICENSE](LICENSE).