fa5987215f
update ruff and pyproject.toml. Sync or reinstall the package
122 lines
2.9 KiB
Markdown
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). |