Mesquinho alegria mesquinho # 1: loguru

Hoje discutiremos por que alguém precisou escrever uma substituição para o logger python padrão e como usar essa coisa.



Está doente!


Quando se trata de fazer logon no Python, o logging vem à mente imediatamente.


logging é uma solução estável e robusta, fortemente incorporada ao ecossistema Python. Você o importa sempre que necessário, faz algumas manipulações - e é tudo, é como você pode escrever o cobiçado logger.exception('--') . E a entrada '--' terminará em algum tipo de diário.


Depois disso, geralmente os desenvolvedores estão interessados ​​em onde exatamente o '--' chegou e o que acontece com esse registro. Os programadores entram nas configurações do criador de logs e começam a usar o monte de várias opções para ensiná-lo a enviar corretamente os registros para arquivos, bancos de dados, coletores de erros e outros locais de possível armazenamento de registros de log.


As configurações para o criador de logs são exibidas, que começam com um incômodo, mas mais ou menos compreensível:


 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"] } } 

Tais configurações estão evoluindo rapidamente para algo muito mais indigesto. Uma configuração normalmente configurada para logging , com diferentes níveis de log, diferentes coletores de mensagens e rotação de arquivos de log é um grande pedaço de texto que já é realmente difícil de cavar.


Para não machucar e até agradável


Uma vez, alguns programadores finalmente se cansaram de cavar (e cometer erros) nas inúmeras opções de configuração para o logging . Esses engenheiros criaram seu próprio logger, extremamente simples e muito poderoso ao mesmo tempo. Essa coisa se chama Loguru .


E aqui está uma demonstração desta biblioteca, e mostra exaustivamente como é possível configurar o logon no seu poderoso aplicativo em algumas linhas.



Por que você deve considerar o loguru como uma alternativa ao logging ?


  • Simplicidade. Sobre isso, eu já disse acima, mas vou dizer novamente - configurar corretamente o loguru mais fácil que o logging .
  • Formas claras de configurar a rotação do arquivo de log e arquivar registros antigos.
  • Montes de baterias já estão incluídos na caixa - cores das mensagens, formatação, envio de notificações de falha por e-mail, pilhas de chamadas de funções, relatórios de falhas e muitas outras comodidades agradáveis.
  • E, claro, assincronia! Sim, o mundo do Python vai cada vez mais longe no sentido de assíncrono / espera, e essa mudança tectônica de toda a programação que requer muita energia requer claramente registradores assíncronos.

Claro, você tem que pagar por tudo. E para usar o loguru deve pagar duas coisas:


  • Lieba é relativamente jovem e pode haver surpresas.
  • Os autores prometem total compatibilidade com o logging , mas você pode encontrar problemas ao conectar o loguru a bibliotecas de terceiros para o logging . Por exemplo, ao anexar manipuladores para Sentry ou Airbrake.

Apesar dessas dificuldades em potencial, o loguru vale a pena ser cuidadosamente testado e amarrado já em seu próximo projeto.

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


All Articles