Est-il possible de décorer / étendre en quelque sorte le système de journalisation standard Python, de sorte que, lorsqu'une méthode de journalisation est invoquée, elle enregistre également le fichier et le numéro de ligne où elle a été invoquée ou peut-être la méthode qui l'a invoquée.
Réponse
Trop de publicités?Bien sûr, vérifiez formateurs dans l'exploitation forestière docs. Plus précisément le lineno et les variables de chemin d'accès.
%(pathname)s chemin d'accès Complet du fichier source où l'enregistrement d'appel a été émis(si disponible).
%(filename)s nom de fichier portion de chemin.
%(module)s Module (nom de la partie du nom de fichier).
%(funcName)s Nom de la fonction contenant l'enregistrement d'appel.
%(lineno)d Source numéro de ligne où l'enregistrement d'appel a été émis (si disponible).
Ressemble à quelque chose comme ceci:
formatter = logging.Formatter('[%(asctime)s] p%(process)s {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s','%m-%d %H:%M:%S')