Sobes.tech
Junior

Jaké knihovny pro rozšířené logování znáte v Pythonu?

sobes.tech AI

Odpověď od AI

  • Standardní modul logging: Vestavěná knihovna poskytující základní možnosti logování, podporuje různé úrovně a handlery. Dobře se rozšiřuje.

  • loguru: Modernější a uživatelsky přívětivější knihovna s důrazem na jednoduchost použití, formátování, rotaci logů a asynchronní logování.

    from loguru import logger
    
    logger.debug("Toto je ladicí zpráva")
    logger.info("Toto je informační zpráva")
    
  • structlog: Knihovna pro strukturované logování. Umožňuje přidávat kontext k logům ve formě klíč-hodnota, což výrazně usnadňuje jejich analýzu.

    import structlog
    
    logger = structlog.get_logger()
    logger.info("Zpracováno požadavek", user_id=123, status="úspěšný")
    
  • sentry-sdk: SDK pro integraci se Sentry.io, platformou pro sledování chyb. Umožňuje sbírat podrobné informace o výjimkách a událostech.

    import sentry_sdk
    
    sentry_sdk.init(
        "YOUR_SENTRY_DSN",
        # Nastavte traces_sample_rate na 1.0, aby zachytilo 100 % transakcí.
        traces_sample_rate=1.0,
    )
    
  • elastic-apm: Agent pro Elastic APM, systém sledování výkonu aplikací. Sbírá metriky a trace pro analýzu výkonu a ladění.

    # Příklad použití ve webovém frameworku (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': 'má-pythonová-aplikace'
    }
    
    apm = ElasticAPM(app)
    
  • Logbook: Alternativa ke standardnímu modulu logging s některými vylepšeními a doplňkovými funkcemi.

Výběr konkrétní knihovny závisí na požadavcích projektu, potřebě strukturovaných logů, integraci s externími monitorovacími systémy a osobních preferencích. Pro "pokročilé" logování se často používají kombinace vestavěného logging s jeho rozšířeními, loguru pro pohodlí nebo structlog pro analýzu. Sentry a Elastic APM jsou určeny pro hlubší sledování a ladění.