Bibliothèque légère de journalisation pour Python, orientée simplicité, lisibilité et réutilisation.
RHs_PyRecord fournit une classe Record destinée à produire des journaux structurés avec :
- un en-tête de session ;
- des niveaux de détail filtrables ;
- une sortie console facultative ;
- une sortie fichier facultative ;
- un format stable avec indication de la fonction appelante ;
- une prise en charge des champs optionnels : toute valeur
Noneest omise.
Le module a été pensé comme une brique publique, sans dépendance à un module de projet spécifique.
Le module expose :
Level: énumération des niveaux de journalisation ;Record: classe principale de journalisation.
UNKNOWNERRORWARNINGSUCCESSINFODEBUG
Le filtrage s'effectue selon le niveau de détail fixé sur l'instance.
Un message dont le niveau est supérieur au seuil courant est ignoré.
L'en-tête peut inclure, selon disponibilité :
- le nom du projet ;
- la version ;
- le mode d'interface ;
- la date de démarrage ;
- le nom du processeur ;
- le kernel de l'OS.
Tout champ valant None est omis.
La classe Record peut :
- écrire dans un fichier ;
- écrire dans la console ;
- retourner la ligne formatée produite ;
- être utilisée avec
with.
Le nom de la fonction appelante peut être injecté explicitement via func, ou déduit automatiquement.
Copiez simplement RHs_PyRecord.py dans votre projet.
Exemple :
from RHs_PyRecord import Record, Levelfrom RHs_PyRecord import Record, Level
logger = Record(
name="Demo",
version="1.0.0",
print_console=True,
write_file=False,
cpu_name="Intel i386",
kernel="Linux 6.6.0",
level=Level.INFO,
)
logger.info("Démarrage correct.", func="main")
logger.warn("Paramètre inhabituel.", func="main")
logger.debug("Trace interne.", func="main") # ignoré si niveau courant = INFOfrom RHs_PyRecord import Record
logger = Record(
name="Demo",
version="1.0.0",
filepath="demo.log",
print_console=False,
write_file=True,
)
logger.set_header()
logger.error("Échec de lecture.", func="load_data")
logger.close()from RHs_PyRecord import Record
with Record(
name="Demo",
version="1.0.0",
filepath="demo.log",
write_file=True,
) as logger:
logger.success("Initialisation terminée.", func="main")- Le fichier est ouvert en écriture simple, donc recréé à chaque nouvelle initialisation.
- Les champs
Nonene sont jamais imprimés. - L'alias
sucess()est conservé pour compatibilité avec l'ancien nom fautif. - La méthode
set_level()contrôle le niveau de détail maximal affiché.
Le module contient des docstrings et des doctests.
Pour les exécuter :
python RHs_PyRecord.pyou, de manière explicite :
python -m doctest -v RHs_PyRecord.pyPermission est accordée, sans frais, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés, d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du logiciel, sous réserve de conserver l'avis de copyright et l'avis de licence.