- 1 1. Guía completa del registro de logs en Python|Desde la depuración hasta la operación
- 2 2. Qué es la salida de registro en Python? Conceptos básicos y su necesidad
- 3 3. Cómo comenzar a generar registros con el módulo logging estándar de Python
- 4 4. Cómo enviar logs a archivos y consola en Python
- 5 5. Técnicas efectivas de registro de logs en proyectos Python
- 6 6. Recomendaciones de 3 bibliotecas para mejorar la salida de logs en Python
- 7 7. ¡Resuelve las dudas sobre la salida de logs en Python!
- 8 8. Domina la salida de logs en Python para mejorar la eficiencia del desarrollo
1. Guía completa del registro de logs en Python|Desde la depuración hasta la operación
En el desarrollo de programas usando Python, el registro de logs es muy importante para identificar errores y verificar el funcionamiento. En este artículo, se explicará, para principiantes de Python, cómo aprovechar eficazmente el registro de logs, desde conceptos básicos hasta técnicas avanzadas.
2. Qué es la salida de registro en Python? Conceptos básicos y su necesidad
La salida de registro es un mecanismo que registra la información y los errores que se generan durante la ejecución del programa. Al utilizar adecuadamente los registros, se obtienen los siguientes beneficios.
Beneficios de la salida de registro
- El análisis de errores se vuelve más fácil
Ayuda a identificar la ubicación y la causa de los errores. - Se puede rastrear el funcionamiento del programa
Permite comprender qué partes funcionan correctamente y dónde se presentan anomalías. - Se puede monitorizar la operación
Sirve como base para monitorear continuamente el estado del sistema en el entorno de producción.
Diferencia con print()
La función print()
, que los principiantes usan con frecuencia, es útil para depuración, pero tiene las siguientes limitaciones en desarrollo serio:
- No se puede especificar de forma flexible el destino de salida (p.ej., archivos o servicios externos).
- No se puede gestionar el nivel de registro (clasificación de importancia).
Al usar el módulo estándar logging
de Python, se pueden resolver estos problemas.

3. Cómo comenzar a generar registros con el módulo logging
estándar de Python
Python incluye de forma estándar el módulo logging
, lo que permite generar registros fácilmente. En esta sección se explica el uso básico.
Resumen de los niveles de registro
En el módulo logging
se pueden establecer «niveles de registro» que indican la importancia de los mensajes de registro. A continuación se presentan los niveles principales:
- DEBUG: Información de depuración. Útil durante el desarrollo.
- INFO: Mensaje informativo. Indica el del programa.
- WARNING: Advertencia. Indica un problema potencial.
- ERROR: Error. Indica que el programa no funciona correctamente.
- CRITICAL: Error crítico. Indica un fallo del sistema.
Uso básico
A continuación se muestra un ejemplo sencillo de generación de registros con el módulo logging
.
import logging
# Configuración básica del registro
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Ejemplo de salida para cada nivel de registro
logging.debug('Esto es información de depuración。')
logging.info('Esto es un mensaje informativo。')
logging.warning('Esto es un mensaje de advertencia。')
logging.error('Esto es un mensaje de error。')
logging.critical('Esto es un mensaje de error crítico。')
Explicación del código
basicConfig
: Configura la salida de registro. Con el argumentolevel
se puede especificar el nivel mínimo de registro a emitir.- Especificación de formato: Con el argumento
format
se puede personalizar el formato de los mensajes de registro. - Ejemplo:
%(asctime)s
es la marca de tiempo,%(levelname)s
es el nivel de registro, y%(message)s
representa el contenido del mensaje.
4. Cómo enviar logs a archivos y consola en Python
Los logs no solo pueden mostrarse en pantalla, sino también guardarse en archivos o sistemas externos. En esta sección se explica cómo configurar los diferentes destinos de salida.
Salida de logs a la consola
logging
En la configuración predeterminada del módulo, los logs se envían a la consola.
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Ejemplo de salida de log a la consola')
Salida de logs a archivo
Para registrar logs en un archivo, especifique el argumento filename
de basicConfig
.
import logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
logging.info('Este es un ejemplo de salida de registro a un archivo.')
Salida de logs tanto a consola como a archivo
Si configura varios destinos de salida, use los handlers de logging
.
import logging
# Creación del logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# Handler para consola
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# Handler para archivo
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
# Configurar el formato del handler
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Añadir handlers al logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.info('Ejemplo de log que se muestra en consola y archivo.')

5. Técnicas efectivas de registro de logs en proyectos Python
Aquí se presentan las mejores prácticas de registro de logs útiles en proyectos reales. Aprenda métodos para depurar de manera eficiente y mejorar la gestión de logs.
Configuración de logs coherente
En proyectos a gran escala, una configuración de logs coherente es importante. Al trabajar con varios módulos y miembros del equipo, establecer un formato y nivel de log unificado facilita el análisis y la solución de problemas.
A continuación se muestra un ejemplo de configuración de logs coherente.
import logging
# Función de configuración de registro común
def setup_logger(name, log_file, level=logging.INFO):
handler = logging.FileHandler(log_file)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# Creación de registradores para cada módulo
app_logger = setup_logger('app_logger', 'app.log')
db_logger = setup_logger('db_logger', 'db.log')
# Ejemplo de salida de registro
app_logger.info('Mensaje de registro de la aplicación')
db_logger.error('Mensaje de error de la base de datos')
Manejo de errores y registro de logs combinados
En el manejo de errores (excepciones), registrar los logs adecuadamente permite comprender rápidamente los detalles del problema.
A continuación se muestra un ejemplo de registro de logs al producirse una excepción.
import logging
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Código de ejemplo que genera un error
1 / 0
except ZeroDivisionError as e:
logging.error(f'Se produjo un error de división por cero: {e}')
Mensajes de log con información de contexto
Según la situación del proyecto, incluir información de contexto adicional (por ejemplo: ID de usuario, ID de transacción, etc.) en los mensajes de log permite un análisis más detallado.
import logging
logging.basicConfig(filename='context.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
user_id = 12345
transaction_id = 'txn_001'
logging.info(f'Usuario ID: {user_id}, ID de transacción: {transaction_id} - La operación fue exitosa.')
Filtrado adecuado de logs
Cuando se generan grandes volúmenes de logs, es eficaz usar filtrado para emitir solo los logs necesarios. A continuación se muestra un ejemplo de filtro personalizado.
import logging
class DebugFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.DEBUG
logger = logging.getLogger('filtered_logger')
handler = logging.StreamHandler()
handler.addFilter(DebugFilter())
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug('Este es un registro de depuración.')
logger.info('Esto no se mostrará.')
6. Recomendaciones de 3 bibliotecas para mejorar la salida de logs en Python
Además del módulo estándar de Python logging
, existen bibliotecas de logs convenientes. En esta sección, se presentan tres bibliotecas especialmente populares.
Loguru: Biblioteca de logs simple para principiantes
Características:
- Instalación y configuración sencillas.
- Sintaxis más intuitiva que el
logging
estándar.
Instalación:
pip install loguru
Uso básico:
from loguru import logger
logger.info('Esto es una salida de registro usando Loguru.')
logger.error('También se pueden registrar mensajes de error fácilmente.')
Logzero: Biblioteca de logs ligera y fácil de usar
Características:
- Fácilmente personalizable.
- Incluye función de rotación de logs.
Instalación:
pip install logzero
Uso básico:
from logzero import logger
logger.info('Salida de registro usando Logzero')
logger.warning('Este es un mensaje de advertencia.')
Structlog: Biblioteca especializada en logs estructurados
Características:
- Capacidad de generar logs en formato JSON fácilmente.
- Adecuado para sistemas distribuidos y entornos en la nube.
Instalación:
pip install structlog
Uso básico:
import structlog
logger = structlog.get_logger()
logger.info('event', user='12345', action='login')

7. ¡Resuelve las dudas sobre la salida de logs en Python!
Q1. ¿Cuál es la causa cuando los registros no se generan?
Respuesta:
Verifique que el nivel de registro esté configurado correctamente. De forma predeterminada, solo se pueden registrar los mensajes con nivel WARNING
o superior.
Q2. ¿Qué hacer si el tamaño del archivo de registro se vuelve demasiado grande?
Respuesta:
Al usar RotatingFileHandler
, puede rotar el archivo de registro cada cierto tamaño.
Q3. ¿Cómo elegir bibliotecas de terceros?
Respuesta:
Seleccione según el tamaño y los requisitos del proyecto. Para proyectos pequeños, Loguru
es adecuado; si necesita registros estructurados, Structlog
es apropiado.
8. Domina la salida de logs en Python para mejorar la eficiencia del desarrollo
En este artículo, explicamos desde los conceptos básicos de la salida de logs en Python hasta técnicas avanzadas y bibliotecas de terceros útiles. Al realizar una salida de logs adecuada, puedes mejorar significativamente la eficiencia de depuración y la precisión del monitoreo del sistema. ¡Inténtalo a partir de hoy!