2009-02-10 15 views

Respuesta

114

Seguro, marque formatters en los documentos de registro. Específicamente las variables lineno y nombre de ruta.

% (ruta) s Ruta de acceso completa del archivo de origen, donde se emitió el registro de llamadas (si está disponible).

% (filename) s Porción del nombre de archivo de la ruta.

% (módulo) s Módulo (nombre de la parte del nombre del archivo).

% (funcName) s Nombre de la función que contiene la llamada de registro.

% (lineno) d Número de línea de origen donde se emitió la llamada de registro (si está disponible).

es como la siguiente:

formatter = logging.Formatter('[%(asctime)s] p%(process)s {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s','%m-%d %H:%M:%S') 
+2

+1: Presupuesto documentación. –

11

Encima de Seb's very useful answer, aquí es un fragmento de código práctico que demuestra el uso del registrador con un formato razonable:

#!/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") 

Genera esta salida:

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

Utilice esto para obtener más detalles: formateador = logging.Formatter ( '% (asctime) s,% (levelname) -8s [% (filename) s:% (module) s:% (funcName) s:% (lineno) d]% (mensaje) s ') –

Cuestiones relacionadas