Files
logwatcher/README.md
T
maurane fa5987215f docs(docs): 📝 update documentation files
update ruff and pyproject.toml. Sync or reinstall the package
2026-09-17 18:13:57 +02:00

2.9 KiB

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

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.