2009-02-10 9 views

Répondre

114

Bien sûr, vérifiez formatters dans les documents de journalisation. Plus précisément les variables lineno et pathname.

% (chemin) de Chemin complet du fichier source où a été émis l'appel d'enregistrement (le cas échéant).

% (nom de fichier) s Nom de fichier du chemin d'accès.

% (module) de Module (en partie nom de fichier).

% (funcName) s Nom de la fonction contenant l'appel de journalisation.

% (lineno) d Numéro de ligne de la source où l'appel de journalisation 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') 
+2

+1: Citer le Documentation. –

11

En plus de Seb's very useful answer, voici un extrait de code pratique qui montre l'utilisation de l'enregistreur avec un format raisonnable:

#!/usr/bin/env python 
import logging 

logging.basicConfig(format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', 
    datefmt='%d-%m-%Y:%H:%M:%S', 
    level=logging.DEBUG) 

logger = logging.getLogger('stackoverflow_rocks') 
logger.debug("This is a debug log") 
logger.info("This is an info log") 
logger.critical("This is critical") 
logger.error("An error occurred") 

Génère cette sortie:

06-06-2017:17:07:02,158 DEBUG [log.py:11] This is a debug log 
06-06-2017:17:07:02,158 INFO  [log.py:12] This is an info log 
06-06-2017:17:07:02,158 CRITICAL [log.py:13] This is critical 
06-06-2017:17:07:02,158 ERROR [log.py:14] An error occurred 
+0

Utilisez ceci pour plus de détails: formatter = logging.Formatter ( '% (asctime) s,% (nom de niveau) -8s [% (nom de fichier) s:% (module) s:% (funcName) s:% (lineno) d]% (message) s ') –

Questions connexes