Au lieu de cela:

def log_error(obj):
  msg = do_someprocess(obj)
  logging.error(msg)

Je souhaite ajouter do_someprocess comme point d'ancrage dans la journalisation. Lorsque j'appelle logging.error(obj), qui exécute do_someprocess avant de se connecter.


Contexte : l'objet est une erreur object, il contient un identifiant et un message d'erreur, utilisez logging.error(error_obj) pour enregistrer l'erreur. do_someprocess sert au formatage du message d'erreur de l'objet.


Le commentaire de @mrEvgenX me donne l'idée que je n'ai pas à le faire dans le cadre de logging. je vais donc ajouter def __str__(self) dans ma classe d'erreur.

La réponse de @Sam fonctionne également comme un type de solution différent, le gestionnaire est StreamHandler.

0
JustWe 19 févr. 2020 à 06:01

1 réponse

Meilleure réponse

Vous allez devoir créer votre propre gestionnaire (créer une nouvelle classe qui hérite de l'un des gestionnaires de python) et l'ajouter à votre logger (cela peut être fait une fois lors de l'initialisation en utilisant AddHandler).

S'il te plait regarde livre de cuisine Python pour des exemples.

1
Sam 19 févr. 2020 à 03:07