Libreria Logging
Libreria Logging
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:**
2. **Configuración Flexible:**
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:**
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.
Ejemplos básicos
1. Registro Simple:
import logging
logging.basicConfig(level=logging.INFO)
2. Registro en un Archivo:
import logging
logging.basicConfig(filename='example.log', level=logging.DEBUG)
import logging
4. Manejo de Excepciones:
import logging
try:
result = 10 / 0
except Exception as e:
# En main.py
import logging
import mymodule
logging.basicConfig(level=logging.INFO)
# En mymodule.py
import logging
logger = logging.getLogger(__name__)
EJEMPLOS AVANZADOS
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)
import logging
class CustomHandler(logging.Handler):
log_entry = self.format(record)
logging.basicConfig(level=logging.INFO)
custom_handler = CustomHandler()
custom_handler.setLevel(logging.WARNING)
logger = logging.getLogger(__name__)
logger.addHandler(custom_handler)
3. Uso de Filtros:
import logging
class CustomFilter(logging.Filter):
logging.basicConfig(level=logging.INFO)
custom_filter = CustomFilter()
logger = logging.getLogger(__name__)
logger.addFilter(custom_filter)
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é.
- Crea un nuevo script de Python y utiliza el siguiente código para importar y ejecutar la
configuración:
```python
import logging.config
```
3. **Uso de Filtros:**
- 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.