Módulo Logging de Python
El módulo logging te permite registrar mensajes de debug, info, warning, error y exception de forma coherente.
import logging
Usa logging en lugar de print() cuando los mensajes tengan distintos niveles de importancia o cuando más adelante quieras enviarlos a un archivo.
Configuración básica
basicConfig configura el registrador predeterminado.
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Application started')
logging.warning('Low disk space')
INFO:root:Application started
WARNING:root:Low disk space
Los mensajes por debajo del nivel configurado se ignoran:
import logging
logging.basicConfig(level=logging.WARNING)
logging.info('Hidden message')
logging.warning('Visible message')
WARNING:root:Visible message
Crear un registrador con nombre
Los registradores con nombre son útiles en aplicaciones grandes.
import logging
logger = logging.getLogger('app.users')
logger.setLevel(logging.INFO)
print(logger.name)
app.users
Dar formato a los mensajes
Puedes personalizar el formato de salida.
import logging
logging.basicConfig(
level=logging.INFO,
format='%(levelname)s:%(name)s:%(message)s',
)
logger = logging.getLogger('app')
logger.info('Ready')
INFO:app:Ready
Registrar excepciones
logger.exception registra automáticamente el traceback dentro de un bloque except.
import logging
logging.basicConfig(level=logging.ERROR)
logger = logging.getLogger(__name__)
try:
1 / 0
except ZeroDivisionError:
logger.exception('Calculation failed')
ERROR:__main__:Calculation failed
Traceback (most recent call last):
...
ZeroDivisionError: division by zero