0% encontró este documento útil (0 votos)
52 vistas7 páginas

Libreria Logging

Gracias por la explicación. Aunque no puedo ejecutar el código, entiendo los conceptos generales de cómo configurar logging de manera avanzada en Python utilizando logging.config, manejadores personalizados, filtros y más. Estos ejemplos ilustran bien las capacidades flexibles de la biblioteca logging.

Cargado por

weteeqe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas7 páginas

Libreria Logging

Gracias por la explicación. Aunque no puedo ejecutar el código, entiendo los conceptos generales de cómo configurar logging de manera avanzada en Python utilizando logging.config, manejadores personalizados, filtros y más. Estos ejemplos ilustran bien las capacidades flexibles de la biblioteca logging.

Cargado por

weteeqe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

La biblioteca `logging` es un módulo de registro incorporado en Python que proporciona una

forma flexible y extensible de registrar mensajes de diferentes niveles de severidad. Aquí tienes
un resumen de la biblioteca `logging` y sus usos:

1. **Registro de Mensajes:**

- La principal función de `logging` es facilitar el registro de mensajes en una aplicación.


Puedes registrar mensajes de diferentes niveles, como DEBUG, INFO, WARNING, ERROR y
CRITICAL, según la importancia del mensaje.

2. **Configuración Flexible:**

- `logging` permite una configuración flexible a través de código o archivos de configuración


externos. Puedes especificar el formato del mensaje, el nivel mínimo de registro y los destinos
de salida, como la consola, archivos o incluso sistemas de registro remotos.

3. **Jerarquía de Registro:**

- La biblioteca `logging` sigue una jerarquía de registro, donde los registros pueden ser
configurados para propagarse a través de los diferentes componentes de una aplicación. Esto
facilita el control centralizado del registro en entornos complejos.

4. **Manejo de Excepciones:**

- Puedes utilizar `logging` para manejar excepciones en tu aplicación al registrar información


detallada sobre las excepciones, incluyendo la traza de la pila. Esto es útil para el diagnóstico
de problemas y la depuración.

5. **Integración con Múltiples Bibliotecas:**

- `logging` se integra fácilmente con otras bibliotecas y frameworks de Python. Muchas


bibliotecas utilizan esta misma infraestructura de registro, lo que permite una experiencia de
registro unificada en una aplicación.

6. **Seguimiento de Eventos en Producción:**

- En entornos de producción, `logging` es esencial para el seguimiento de eventos y la


monitorización del rendimiento de una aplicación. Los registros de nivel INFO o superior
pueden proporcionar información valiosa sobre el comportamiento del sistema en tiempo real.

7. **Desarrollo y Depuración:**
- Durante el desarrollo, el registro de mensajes de nivel DEBUG es útil para obtener
información detallada sobre el flujo de la aplicación y el estado interno de los componentes.
Esto facilita la depuración y la identificación de problemas.

8. **Personalización de Formato:**

- `logging` permite personalizar el formato de los mensajes de registro según tus necesidades.
Puedes incluir información adicional, como marcas de tiempo, nombres de módulos, y más.

En resumen, la biblioteca `logging` de Python es una herramienta poderosa y versátil para la


gestión de registros en aplicaciones. Su flexibilidad, configuración escalable y capacidad para
integrarse con otras bibliotecas hacen que sea una elección común para el registro de eventos
en una amplia variedad de proyectos.

Ejemplos básicos

1. Registro Simple:

import logging

logging.basicConfig(level=logging.INFO)

logging.info("Este es un mensaje de nivel INFO")

logging.warning("¡Cuidado! Este es un mensaje de advertencia")

2. Registro en un Archivo:

import logging

logging.basicConfig(filename='example.log', level=logging.DEBUG)

logging.debug("Este mensaje será registrado en el archivo")

3. Personalización del Formato:

import logging

logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', level=logging.INFO)

logging.info("Mensaje con formato personalizado")

4. Manejo de Excepciones:
import logging

try:

# Código que puede lanzar una excepción

result = 10 / 0

except Exception as e:

logging.error("Se ha producido una excepción: %s", str(e), exc_info=True)

5. Uso de Logging en un Módulo Diferente:

# En main.py

import logging

import mymodule

logging.basicConfig(level=logging.INFO)

logging.info("Mensaje desde el módulo principal")

# En mymodule.py

import logging

logger = logging.getLogger(__name__)

logger.info("Mensaje desde el módulo secundario")

EJEMPLOS AVANZADOS

Configuración Avanzada con logging.config:

import logging
import logging.config

LOGGING_CONFIG = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'file_handler': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'app.log',
'formatter': 'standard'
},
'console_handler': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'': {
'handlers': ['file_handler', 'console_handler'],
'level': 'DEBUG',
'propagate': True
}
}
}

logging.config.dictConfig(LOGGING_CONFIG)

logging.debug("Este mensaje será registrado en el archivo y en la


consola.")

2. Manejadores Adicionales y Niveles Personalizados:

import logging

class CustomHandler(logging.Handler):

def emit(self, record):

log_entry = self.format(record)

# Implementa la lógica personalizada para el manejo del registro

print(f"Registro personalizado: {log_entry}")

logging.basicConfig(level=logging.INFO)

custom_handler = CustomHandler()

custom_handler.setLevel(logging.WARNING)

logger = logging.getLogger(__name__)

logger.addHandler(custom_handler)

logger.info("Este mensaje será ignorado por el CustomHandler")

logger.warning("Este mensaje será manejado por el CustomHandler")

3. Uso de Filtros:
import logging

class CustomFilter(logging.Filter):

def filter(self, record):

return "filtrar" not in record.msg

logging.basicConfig(level=logging.INFO)

custom_filter = CustomFilter()

logger = logging.getLogger(__name__)

logger.addFilter(custom_filter)

logger.info("Este mensaje pasará a través del filtro")

logger.info("Este mensaje será filtrado")

Marlon: MUESTRAME EL uso de estos ejemplos avanzados

Lo siento por la confusión, pero debido a las limitaciones de este entorno de respuesta de
texto, no puedo ejecutar código ni mostrar resultados en tiempo real. Sin embargo, te
proporcionaré una guía paso a paso sobre cómo ejecutar los ejemplos avanzados que te
proporcioné.

1. **Configuración Avanzada con `logging.config`:**

- Copia el código de configuración avanzada en un archivo Python, por ejemplo,


`advanced_logging_config.py`.

- Crea un nuevo script de Python y utiliza el siguiente código para importar y ejecutar la
configuración:

```python

import logging.config

from advanced_logging_config import LOGGING_CONFIG


logging.config.dictConfig(LOGGING_CONFIG)

logging.debug("Este mensaje será registrado en el archivo y en la consola.")

```

- Ejecuta el script y observa cómo se registran mensajes en el archivo `app.log` y en la


consola.

2. **Manejadores Adicionales y Niveles Personalizados:**

- Copia el código del ejemplo de manejadores adicionales en un script de Python.

- Ejecuta el script y observa cómo se utiliza un manejador personalizado para manejar


mensajes de advertencia.

3. **Uso de Filtros:**

- Copia el código del ejemplo de uso de filtros en un script de Python.

- Ejecuta el script y observa cómo se utiliza un filtro para excluir mensajes que contienen la
palabra "filtrar".

Recuerda ajustar y personalizar estos ejemplos según tus necesidades específicas. Si tienes
algún problema al ejecutarlos o tienes preguntas adicionales, no dudes en preguntar.

También podría gustarte