Repository navigation
✨ feat(logs): rotation des logs applicatifs, messenger.log (~50 Mo) borné (#606) - #608
Merged
Merged
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #606
Pourquoi
var/log/messenger.logatteignait ~50 Mo sur chacune des 7 instances, sans aucune purge. Audit du 2026-10-02 : 1,24 million de lignes dont aucune utile — uniquement la bannière quemessenger:consumeréimprime à chaque démarrage du worker (cron toutes les minutes,>> messenger.log), ~103 000 démarrages. Le fichier reçoit aussi les erreurs du worker : on le fait donc tourner plutôt que de le réduire au silence.Changements
bin/rotate-logs.sh(nouveau) : chaque*.logde plus de 10 Mo (ROTATE_LOGS_MAX_BYTES) est archivé dans<fichier>.1.gz, 3 archives conservées (ROTATE_LOGS_KEEP), puis tronqué et non renommé : le worker garde son descripteur ouvert (>>= O_APPEND) et continue d'écrire au bon endroit sans redémarrage. Si l'archivage échoue, le log n'est pas tronqué ; le script sort toujours en 0.bin/deploy-nightly.sh: appelle la rotation au tout début, avant toute décision de déploiement (instance à jour, reportée ou déployée). Il est déjà planifié et étalé sur les 7 instances : aucun nouveau cron à poser, aucune intervention manuelle par serveur. Un échec de rotation n'empêche jamais le déploiement..claude/deploiement.md,.github/avancement.md.Mesures (fichier de 50 Mo de bannières)
Archive de 245 Ko, 0,2 s, 3 Mo de mémoire : sans risque pour le LVE.
Points d'attention
bash bin/rotate-logs.shdans le dossier de l'instance.Tests
bash tests/bash/run.sh: 37/37 — 7 nouveaux pour la rotation (sous le seuil, archive + vidage, décalage et limite à 3, seuls les*.log, écriture O_APPEND après troncature sans trou, échec de gzip sans perte ni échec, dossier absent/vide) et 2 d'intégration nocturne (rotation même si l'instance est à jour ; échec de rotation sans effet sur le déploiement). Ces tests tournent désormais en CI (jobbash, #605).