Logger

Le module Logger fournit un système de logging unifié pour l’application.

Usage

Un logger est créé pour chaque module nécessitant de journaliser des informations, ce qui permet un suivi détaillé de l’exécution de l’application.

Fonctionnalités

  • Gère des loggers nommés pour chaque module.

  • Supporte les sorties vers la console et/ou des fichiers.

  • Inclut la rotation automatique des fichiers de log pour éviter qu’ils ne deviennent trop volumineux.

  • Propose différents niveaux de log (DEBUG, INFO, WARNING, ERROR, CRITICAL).

Modules

class src.smart_watch.core.Logger.LogLevel(*values)[source]

Bases : Enum

Enumération des niveaux de journalisation pour le module Logger.

Cette classe définit les différents niveaux de gravité utilisés pour la journalisation des messages dans l’application. Chaque niveau correspond à une constante du module logging de Python.

DEBUG

niveau de débogage, utilisé pour les informations détaillées utiles au diagnostic.

Type:

int

INFO

niveau d’information, utilisé pour les messages informatifs généraux.

Type:

int

WARNING

niveau d’avertissement, utilisé pour signaler des situations inattendues ou potentiellement problématiques.

Type:

int

ERROR

niveau d’erreur, utilisé pour les erreurs qui empêchent le fonctionnement normal de l’application.

Type:

int

CRITICAL

niveau critique, utilisé pour les erreurs graves nécessitant une attention immédiate.

Type:

int

DEBUG = 10
INFO = 20
WARNING = 30
ERROR = 40
CRITICAL = 50
class src.smart_watch.core.Logger.LogOutput(*values)[source]

Bases : Enum

Enumération représentant les types de sortie pour les logs.

FILE

sortie des logs dans un fichier.

Type:

LogOutput

CONSOLE

sortie des logs dans la console.

Type:

LogOutput

FILE = 'file'
CONSOLE = 'console'
class src.smart_watch.core.Logger.SmartWatchLogger(module_name: str = 'main', outputs: List[LogOutput] | None = None)[source]

Bases : object

__init__(module_name: str = 'main', outputs: List[LogOutput] | None = None)[source]

Initialise une instance du logger pour le module spécifié, avec les sorties désirées.

Cette méthode configure le système de journalisation pour le module donné, en chargeant les variables d’environnement, en définissant les sorties de log (fichier et/ou console), et en préparant le fichier de log dans le dossier approprié.

Paramètres:
  • module_name (str, optional) – nom du module à logger. Par défaut « main ».

  • outputs (List[LogOutput], optional) – liste des sorties de log à utiliser (par exemple fichier, console). Par défaut [LogOutput.FILE, LogOutput.CONSOLE].

module_name

nom du module associé au logger.

Type:

str

outputs

sorties de log configurées.

Type:

List[LogOutput]

log_file

chemin vers le fichier de log.

Type:

Path

_setup_logging()[source]

Configure le système de journalisation pour le module courant.

Cette méthode initialise le logger en fonction du niveau de log spécifié dans la variable d’environnement LOG_LEVEL (par défaut à « INFO »). Elle configure les handlers pour la sortie console et/ou fichier selon les options définies dans self.outputs. Le dossier de logs est créé si nécessaire, et la rotation des fichiers est gérée pour limiter la taille et le nombre de sauvegardes. Si le logger possède déjà des handlers, la configuration est ignorée.

En cas d’erreur lors de la configuration, le logger est désactivé et une erreur est affichée.

Lève:

Exception – si une erreur survient lors de la configuration du logger.

_log(level: LogLevel, message: str)[source]

Enregistre un message dans le journal selon le niveau spécifié.

Cette méthode vérifie d’abord si le logger est disponible avant d’essayer d’écrire le message. En cas d’échec lors de l’écriture, une erreur est affichée dans la sortie standard.

Paramètres:
  • level (LogLevel) – le niveau de log à utiliser (ex: INFO, WARNING, ERROR).

  • message (str) – le message à enregistrer dans le journal.

Renvoie:

None

Lève:

Affiche une erreur dans la sortie standard si l'écriture dans le journal échoue.

log(level: LogLevel, message: str)[source]

Enregistre un message de journalisation avec un niveau spécifié.

Paramètres:
  • level (LogLevel) – le niveau de journalisation (ex. INFO, WARNING, ERROR).

  • message (str) – le message à enregistrer dans le journal.

debug(message: str)[source]

Enregistre un message de débogage dans le journal.

Paramètres:

message (str) – le message à enregistrer au niveau DEBUG.

info(message: str)[source]

Enregistre un message d’information dans le journal.

Paramètres:

message (str) – le message à enregistrer au niveau INFO.

warning(message: str)[source]

Enregistre un message d’alerte dans le journal.

Paramètres:

message (str) – le message à enregistrer au niveau WARNING.

error(message: str)[source]

Enregistre un message d’erreur dans le journal.

Paramètres:

message (str) – le message à enregistrer au niveau ERROR.

critical(message: str)[source]

Enregistre un message d’alerte critique dans le journal.

Paramètres:

message (str) – le message à enregistrer au niveau CRITICAL.

section(title: str, level: LogLevel = LogLevel.INFO)[source]

Affiche une section formatée dans les logs, entourée de séparateurs pour mettre en valeur le titre.

Paramètres:
  • title (str) – le titre de la section à afficher dans les logs.

  • level (LogLevel, optionnel) – le niveau de log à utiliser pour cette section. Par défaut, LogLevel.INFO.

src.smart_watch.core.Logger.create_logger(module_name: str = 'main', outputs: List[str] | None = None) SmartWatchLogger[source]

Crée et retourne une instance de SmartWatchLogger pour le module spécifié.

Cette fonction permet de configurer les sorties du logger (fichier, console) en fonction de la liste fournie. Si aucune liste n’est donnée, toutes les sorties disponibles sont utilisées par défaut. Les sorties non reconnues sont ignorées avec un avertissement.

Paramètres:
  • module_name (str, optionnel) – nom du module pour lequel le logger est créé. Par défaut « main ».

  • outputs (List[str], optionnel) – liste des sorties désirées pour le logger. Les valeurs acceptées sont « file » et « console ». Si None, toutes les sorties sont activées.

Renvoie:

instance configurée du logger pour le module spécifié.

Type renvoyé:

SmartWatchLogger

Avertissements:

Affiche un avertissement dans la console si certains éléments de `outputs` ne sont pas reconnus.