Petty Petty Joy # 1: loguru

Hoy discutiremos por qué alguien necesitaba escribir un reemplazo para el logging pitón de logging estándar y cómo usar esto.



Está enfermo!


Cuando se trata de iniciar sesión en Python, el logging viene a la mente de inmediato.


logging es una solución robusta y estable firmemente integrada en el ecosistema de Python. Lo importas cuando es necesario, haces un par de manipulaciones, y eso es todo, es como escribir el codiciado logger.exception('--') . Y la entrada '--' terminará en algún tipo de diario.


Después de eso, generalmente los desarrolladores están interesados ​​en saber exactamente dónde llegó el '--' y qué sucede con este registro. Los programadores acceden a la configuración del registrador y comienzan a usar el montón de varias opciones para enseñarle a insertar correctamente los registros en archivos, bases de datos, recolectores de errores y otros lugares de posible almacenamiento de registros de registros.


Aparecen configuraciones para el registrador, que comienzan con una tarea engorrosa, pero más o menos comprensible:


 LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } } 

Tales configuraciones están evolucionando rápidamente hacia algo mucho más indigesta. Una configuración normalmente configurada para el logging , con diferentes niveles de registro, diferentes recopiladores de mensajes y rotación de archivos de registro es un texto considerable que ya es realmente difícil de profundizar.


Para no lastimar e incluso agradable


Una vez, un par de programadores finalmente se cansaron de cavar (y cometer errores) en las numerosas opciones de configuración para el logging . Estos ingenieros escribieron su propio registrador, extremadamente simple y muy poderoso al mismo tiempo. Esta cosa se llama Loguru .


Y aquí está la demostración de esta biblioteca, y muestra exhaustivamente cómo es posible configurar el inicio de sesión en su potente aplicación en un par de líneas.



¿Por qué debería considerar loguru como una alternativa al logging ?


  • Simplicidad Sobre esto, ya lo he dicho anteriormente, pero lo diré nuevamente: configurar correctamente loguru más fácil que logging .
  • Formas claras de configurar la rotación de archivos de registro y archivar registros antiguos.
  • La caja ya incluye montones de baterías: colores de mensajes, formateo, envío de notificaciones de fallas por correo electrónico, pilas de llamadas de funciones junto con informes de fallas y muchas otras comodidades agradables.
  • Y, por supuesto, ¡asincronía! Sí, el mundo de Python va más y más hacia asíncrono / espera, y este cambio tectónico de toda la programación que consume mucha energía claramente requiere registradores asíncronos.

Por supuesto, tienes que pagar por todo. Y para usar loguru que pagar dos cosas:


  • Lieba es relativamente joven y puede haber sorpresas.
  • Los autores prometen compatibilidad total con el logging , pero bien puede encontrar problemas para conectar loguru con bibliotecas de terceros para el logging . Por ejemplo, al adjuntar controladores para Sentry o Airbrake.

A pesar de estas dificultades potenciales, loguru pena probar y atar loguru cuidadosamente en su próximo proyecto.

Source: https://habr.com/ru/post/454436/


All Articles