Skip to content

Fix logging configuration and upgrade system packages in Docker#18

Merged
Kaiohz merged 1 commit into
mainfrom
BRIC-18/multiplexed-content-stream
May 6, 2026
Merged

Fix logging configuration and upgrade system packages in Docker#18
Kaiohz merged 1 commit into
mainfrom
BRIC-18/multiplexed-content-stream

Conversation

@Kaiohz
Copy link
Copy Markdown
Contributor

@Kaiohz Kaiohz commented May 6, 2026

  • Add missing logging setup in stream_message use case
  • Ensure root logger level is set to INFO in main.py
  • Upgrade system packages in Dockerfile to address CVEs

- Add missing logging setup in stream_message use case
- Ensure root logger level is set to INFO in main.py
- Upgrade system packages in Dockerfile to address CVEs
Copy link
Copy Markdown
Contributor Author

@Kaiohz Kaiohz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📋 Review PR #18

Score : 7/10


✅ Points positifs

Dockerfile :

  • Bonne pratique de sécurité : mise à jour des packages système pour corriger les CVEs (ex: libgnutls30)
  • Nettoyage approprié du cache apt (apt-get clean && rm -rf /var/lib/apt/lists/*)
  • Placement judicieux avant le COPY du venv pour optimiser le cache Docker

main.py :

  • Configuration défensive du root logger avec setLevel(logging.INFO)
  • Garantit que le niveau INFO est appliqué même si des imports antérieurs ont modifié la config

Commit :

  • Message clair et bien structuré
  • Changements ciblés et non-invasifs

⚠️ Points à améliorer

1. stream_message.py - Pattern de logging problématique

logger.propagate = False  # ← Problème ici

Pourquoi c'est un problème :

  • propagate=False empêche les logs de ce module d'être propagés au root logger
  • Si tu configures d'autres handlers au niveau root (ex: logging centralisé, Sentry, OpenObserve), ils ne recevront pas les logs de ce module
  • C'est un anti-pattern de configurer les handlers au niveau du module plutôt qu'au niveau de l'application

Duplication :

  • Le format "%(asctime)s - %(name)s - %(levelname)s - %(message)s" est dupliqué avec main.py
  • Si on change le format global, il faut penser à le changer ici aussi → maintenance

💡 Recommandations

Option A : Supprimer le bloc de config locale (recommandé)

# src/application/use_cases/stream_message.py
logger = logging.getLogger(__name__)
# La configuration globale de main.py gère tout

Si le but est de voir les logs dans les tests, ajouter un conftest.py :

# tests/conftest.py
import logging
import pytest

@pytest.fixture(scope="session", autouse=True)
def configure_logging():
    logging.basicConfig(
        level=logging.INFO,
        format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    )

Option B : Null handler pattern

Si tu veux vraiment éviter le warning "No handlers found" sans casser la propagation :

logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())

Dockerfile : Spécifier le SHA de l'image

Pour reproductibilité des builds :

FROM python:3.11-slim-bookworm@sha256:xxx

🎯 Verdict

La PR est mergeable si tu acceptes le compromis sur le logging. Le fix Docker est un gain immédiat de sécurité.

Pour une config propre, je recommande d'enlever le bloc if not logger.handlers: dans stream_message.py et de gérer le logging globalement dans main.py + conftest.py pour les tests.

Suggestion : Merge maintenant, créer un ticket tech debt pour refactor le logging si c'est important.

_handler = logging.StreamHandler(sys.stdout)
_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
logger.addHandler(_handler)
logger.setLevel(logging.INFO)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logging anti-pattern détecté ici

propagate=False empêche la propagation vers le root logger. Considère d'enlever ce bloc entier et de laisser main.py gérer la configuration globale.

Si tu as besoin de logs dans les tests, ajoute un conftest.py avec une fixture logging.

@Kaiohz Kaiohz merged commit b6f1483 into main May 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant