You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplification welcome — Remplacer le dict LOG_CONFIG (26 lignes) par un basicConfig() (4 lignes), c'est un net gain de lisibilité. Le logging applicatif n'a pas besoin d'une config dictConfig pour ce projet.
Utilisation de app_config.UVICORN_LOG_LEVEL — Le niveau de log est maintenant tiré de la config existante au lieu d'être hardcodé à "INFO". C'est plus flexible et cohérent avec le reste de la config.
Format de log amélioré — Le passage de %(asctime)s %(levelname)-8s [%(name)s] %(message)s à %(asctime)s | %(levelname)-8s | %(name)s | %(message)s avec datefmt rend les logs plus lisibles et parsables.
Suppression de log_config=LOG_CONFIG dans uvicorn.run() — Cohérent : si on utilise basicConfig(), on ne doit pas re-passer un dictConfig à uvicorn.
Réorganisation des imports — from alembic.config import Config déplacé après from alembic import command, ce qui est plus logique et suit les conventions isort.
⚠️ Points d'attention / Améliorations
Comportement subtil avec uvicorn — basicConfig() configure le root logger, mais uvicorn démarre ses propres loggers (uvicorn, uvicorn.error, uvicorn.access) avant que main.py soit importé en tant que module. Le dictConfig original fixait explicitement propagate: False sur ces loggers, ce qui évitait les logs dupliqués. Avec basicConfig(), si uvicorn a déjà configuré ses handlers, basicConfig() est un no-op (il ne configure rien si le root logger a déjà des handlers). À vérifier en production que les logs uvicorn ne sont pas doublonnés ou silencieux.
Suggestion : Ajouter un force=True dans basicConfig() pour garantir que la config s'applique :
Perte du contrôle fin sur les loggers uvicorn — Le dictConfig permettait de configurer uvicorn.access à INFO séparément du root logger. Avec basicConfig(), tout passe par le root logger. Si on veut filtrer les access logs (très verbeux) sans toucher aux autres, ce n'est plus possible directement.
Suggestion si besoin : Ajouter un filtre ou configurer les loggers uvicorn après basicConfig() :
Import logging.config supprimé — OK car plus utilisé, mais vérifier qu'aucun autre module ne l'importe indirectement via ce fichier.
UVICORN_LOG_LEVEL.upper() — Bien que fonctionnel, .upper() est défensif (les niveaux de logging sont déjà case-insensitive en Python). Ce n'est pas un bug, mais c'est redondant. Pas bloquant.
📊 Résumé
Critère
Note
Simplicité / Lisibilité
⭐⭐⭐⭐⭐
Cohérence avec la config
⭐⭐⭐⭐
Risque régression (logs uvicorn)
⭐⭐⭐
Correctness / edge cases
⭐⭐⭐
Verdict : Bon refactoring de simplification. Le risque principal est le comportement de basicConfig() face aux loggers uvicorn déjà initialisés. Je recommande d'ajouter force=True et de tester que les logs ne sont ni doublonnés ni silencieux en staging. Après ça, c'est un 👍.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restore the logging.basicConfig() that was accidentally reverted. Removes the verbose LOG_CONFIG dict in favor of a single basicConfig call.