Résolue

Définir des niveaux de log personnalisés

# Module logging

Est-ce qu'on peut définir nos propres level de log avec ce module ? Est ce que par exemple je peux ajouter un level VERBOSE entre le level DEBUG et le level INFO ?

Gabriel Trouvé

Mentor

Salut,

Oui tu peux !

La façon la plus courante et la seule que j'ai vu de faire :

import logging

# Définir un niveau personnalisé entre INFO (20) et WARNING (30)
MON_NIVEAU = 25
logging.addLevelName(MON_NIVEAU, "MON_NIVEAU")

# Ajouter une méthode mon_niveau à la classe Logger
def mon_niveau(self, message, *args, **kwargs):
    """
    Log un message avec le niveau MON_NIVEAU sur ce logger.
    """
    if self.isEnabledFor(MON_NIVEAU):
        self._log(MON_NIVEAU, message, args, **kwargs)

# Ajouter la méthode à la classe Logger
logging.Logger.mon_niveau = mon_niveau

# Exemple d'utilisation
if __name__ == "__main__":
    logging.basicConfig(
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
        level=logging.DEBUG
    )

    logger = logging.getLogger("mon_application")

    logger.debug("Ceci est un message DEBUG")
    logger.info("Ceci est un message INFO")
    logger.mon_niveau("Ceci est un message MON_NIVEAU personnalisé")
    logger.warning("Ceci est un message WARNING")
    logger.error("Ceci est un message ERROR")
    logger.critical("Ceci est un message CRITICAL")

En gros le but c'est de définir un level entre DEBUG et INFO, de save le nouveau niveau, et d'ajouter une méthode à la classe Logger.

Excellent, je me garde cet exemple de côté.

Merci :)

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.