FOXA-2992 : le sink de loguru ne perd plus une ligne sans bind(context=…) #46
No reviewers
Labels
No labels
montee-majeure
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
foXaCe/wacustom!46
Loading…
Reference in a new issue
No description provided.
Delete branch "passe-20261006-042842-0b6eaaad"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
FOXA-2992 : le sink de loguru ne perd plus une ligne sans bind(context=…)
f3b5b25FOXA-2992 : le sink perdait toute ligne journalisee sans bind(context=…)0b6eaaaFOXA-2992 : le recit dans JOURNAL.md, la reference portee a 34 suites / 552Pourquoi
FOXA-2992 — le motif complet est dans le ticket, et dans le message du ou des commits ci-dessus.
Ce qui a été mesuré
Porte jouée par la forge, pas sur le poste. « Porte / porte* » est le seul contexte qu'exige la protection de « main » : la fusion attend son vert et ne le contourne pas.
Livrée par livrer-passe.sh depuis le worktree ../wacustom-f2992, tête
0b6eaaad.Les deux gabarits de sink exigeaient `{extra[context]}` — celui de la console comme celui de la trace du volume. Sur une ligne journalisee sans `bind(context=…)`, loguru leve `KeyError`, l'encaisse, le sink survit et la ligne disparait des DEUX colonnes du releve, sans que rien ne le dise dans la trace elle-meme. Le ticket nommait la trace (`logger.py:212`) ; la mesure a trouve la console aussi (`format_log`), qui perdait la meme ligne sur le meme `Handler #1`. Corriger le fichier seul aurait laisse la premiere colonne des deux releves muette sur la meme ligne. `_contexte_de(record)` lit la colonne de contexte avec son repli `ADDON`, et c'est le gabarit qui la pose : plus aucun gabarit n'exige une cle que loguru ne garantit pas. Deux pieges du passage d'un format statique a un format rendu par une fonction, tous deux mesures le jour meme sur le correctif, tous deux invisibles sur un `grep` de confort — loguru n'ajoute au format que ce qu'on lui donne, et un format STATIQUE se voit complete par `"\n{exception}"` (`loguru/_logger.py:397`) : - sans le `\n` final, les lignes de la trace se recollent bout a bout et le `grep -ac` de CLAUDE.md rend 1 au lieu du nombre de lignes ; - sans `{exception}`, la traceback d'une ligne en echec disparait de la trace. Le banc fige les deux, et fige le format du releve pour une ligne contextuelle : sortie identique octet pour octet a l'ancien format statique. `test_ligne_sans_contexte_sort.py`, 13 cas. Sur le comportement d'avant, 12 des 13 rougissent ; le treizieme journalise AVEC un contexte et passe des deux cotes — c'est lui le verrou de non-regression.