Metadata-Version: 2.2
Name: loggerplusplus
Version: 0.1.1
Summary: Logger is an enhanced Python logging module with colorized output, customizable themes, improved multi-logger management, and optimized display for better readability
Home-page: https://github.com/Florian-BARRE/LoggerPlusPlus
Author: Florian BARRE
Author-email: florian.barre78@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: colorama>=0.4.6
Requires-Dist: contourpy>=1.3.1
Requires-Dist: cycler>=0.12.1
Requires-Dist: fonttools>=4.55.8
Requires-Dist: kiwisolver>=1.4.8
Requires-Dist: matplotlib>=3.10.0
Requires-Dist: numpy>=2.2.2
Requires-Dist: packaging>=24.2
Requires-Dist: pillow>=11.1.0
Requires-Dist: pyparsing>=3.2.1
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: six>=1.17.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Logger
# Logger - Documentation Complète

## 1. Introduction
Le module **Logger** est une implémentation avancée de logging en Python. Il repose sur le module standard `logging` tout en améliorant ses capacités grâce à :

- Un **formatage avancé** avec couleurs personnalisables
- Une **gestion des logs** avec suppression automatique des anciens fichiers
- Un **système de monitoring** de l’espace disque et des fichiers journaux
- Des **décorateurs** pour mesurer le temps d’exécution et suivre les appels de fonctions
- Un **LoggerManager** permettant de gérer facilement et intuitivement plusieurs loggers dans les grands projets qui nécessitent une gestion centralisée des logs.

## 2. Installation
### Prérequis
Ce module utilise **Python 3.x** et dépend des bibliothèques suivantes :
```bash
pip install colorama
```

### Intégration dans un projet
Tu peux directement inclure ce module dans ton projet en important les fichiers nécessaires.

## 3. Fonctionnalités principales
### 3.1. Création et configuration d’un Logger
Un logger peut être initialisé avec des paramètres personnalisés :
```python
from logger.logger import Logger

logger = Logger(identifier="MyLogger", path="logs/")
logger.info("Ceci est un message informatif")
```

### 3.2. Gestion des niveaux de log
Le module propose plusieurs niveaux de log :
- **DEBUG**
- **INFO**
- **WARNING**
- **ERROR**
- **CRITICAL**
- **FATAL**

Exemple d’utilisation :
```python
logger.debug("Ceci est un message de débogage")
logger.fatal("Erreur fatale détectée")
```

### 3.3. Formatage des logs avec couleurs personnalisées
Le format des logs suit la structure :
```
<date(heure:min:s.ms)> -> [<identifiant>] [<fichier>:<ligne>] <niveau> | <message>
```
Il est également possible d’activer un formatage coloré.

### 3.4. Décorateurs de logging
Deux décorateurs sont disponibles pour suivre l’exécution des fonctions :

#### Décorateur `@log`
Permet de tracer automatiquement les appels de fonctions :
```python
from logger.decorators import log

@log()
def ma_fonction():
    print("Exécution...")
```

#### Décorateur `@time_tracker`
Mesure le temps d’exécution d’une fonction :
```python
from logger.decorators import time_tracker

@time_tracker()
def calcul():
    return sum(range(10000))
```

### 3.5. Configuration avancée
Le **LoggerConfig** permet d’ajuster le comportement du logger :
```python
from logger.logger_configs import LoggerConfig

config = LoggerConfig(identifier="AppLogger", path="/var/logs")
logger = Logger(config=config)
```

#### Options de configuration principales :
- **log_levels_config** : niveaux de log autorisés
- **placement_config** : mise en forme des logs
- **monitor_config** : activation du monitoring des fichiers

## 4. Gestion des fichiers de log et monitoring
Le module intègre un **DiskMonitor** pour surveiller l’espace disque et nettoyer les logs automatiquement.
```python
logger.disk_monitor.display_monitoring()
logger.disk_monitor.clean_logs()
```

## 5. Gestion centralisée avec LoggerManager
Le **LoggerManager** permet de gérer plusieurs instances de loggers :
```python
from logger.logger_manager import LoggerManager
LoggerManager.enable_unique_logger_identifier = True
```

## 6. Exemples d’utilisation
### 6.1. Logger simple avec couleur
```python
logger = Logger(identifier="App", colors=True)
logger.info("Lancement de l’application")
```

### 6.2. Logger avec sauvegarde dans un fichier
```python
logger = Logger(identifier="App", path="logs/app.log")
logger.warning("Problème détecté")
```

### 6.3. Logger avec décorateur
```python
@log()
def fonction_a_suivre():
    return "Donnée importante"
```

### Auteur

Projet créé et maintenu par **Florian BARRE**.  
Pour toute question ou contribution, n'hésitez pas à me contacter.
[Mon Site](https://florianbarre.fr/) | [Mon LinkedIn](www.linkedin.com/in/barre-florian) | [Mon GitHub](https://github.com/Florian-BARRE)
