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.