Sobes.tech
Junior

Que bibliotecas de logging avançado conhece em Python?

sobes.tech IA

Resposta da IA

  • Módulo logging padrão: Biblioteca incorporada que fornece funcionalidades básicas de registo, suporta vários níveis e manipuladores. Fácil de expandir.

  • loguru: Biblioteca mais moderna e fácil de usar, com foco na simplicidade, formatação, rotação de logs e registo assíncrono.

    from loguru import logger
    
    logger.debug("Esta é uma mensagem de depuração")
    logger.info("Esta é uma mensagem informativa")
    
  • structlog: Biblioteca para registo estruturado. Permite adicionar contexto aos logs na forma de chave-valor, facilitando a sua análise.

    import structlog
    
    logger = structlog.get_logger()
    logger.info("Pedido processado", user_id=123, status="sucesso")
    
  • sentry-sdk: SDK para integração com Sentry.io, plataforma de monitorização de erros. Permite recolher informações detalhadas sobre exceções e eventos.

    import sentry_sdk
    
    sentry_sdk.init(
        "YOUR_SENTRY_DSN",
        # Definir traces_sample_rate para 1.0 para capturar 100%
        # das transações para monitorização de desempenho.
        traces_sample_rate=1.0,
    )
    
  • elastic-apm: Agente para Elastic APM, sistema de monitorização de desempenho de aplicações. Recolhe métricas e traços para análise de desempenho e depuração.

    # Exemplo de uso em um framework web (Flask)
    from flask import Flask
    from elasticapm.contrib.flask import ElasticAPM
    
    app = Flask(__name__)
    app.config['ELASTIC_APM'] = {
        'SERVER_URL': 'http://localhost:8200',
        'SERVICE_NAME': 'minha-aplicação-python'
    }
    
    apm = ElasticAPM(app)
    
  • Logbook: Alternativa ao módulo padrão logging com algumas melhorias e funcionalidades adicionais.

A escolha da biblioteca específica depende dos requisitos do projeto, da necessidade de estruturar logs, da integração com sistemas externos de monitoramento e preferências pessoais. Para uma "registo avançado" frequentemente utilizam combinações do logging incorporado com suas extensões, loguru para conveniência ou structlog para análise. Sentry e Elastic APM destinam-se a monitoramento e depuração mais aprofundados.