Files
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

122 lines
2.9 KiB
Markdown

# 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).