Améliorer la visualisation des logs sur des scripts backend avec les Readable Streams

Améliorer la visualisation des logs sur des scripts backend avec les Readable Streams
Hello tout le monde ! Aujourd'hui, je vais vous parler d'une problématique que rencontrent souvent les développeurs, moi inclus, quand on travaille avec des scripts backend lourds pour des sites e-commerce.
Dans mon quotidien, je suis souvent amené à maintenir des scripts qui synchronisent stocks, prix et autres données techniques. Ces scripts peuvent tourner longtemps, parfois 40 minutes, et il est très difficile de savoir ce qui se passe "derrière".
Le problème avec les console.log
Ma solution traditionnelle ? Mettre des console.log partout et inspecter la console. Mais cela devient vite ingérable :
Bref, c'était le chaos côté débogage et expérience utilisateur.
Découverte des Readable Streams
Il y a quelques mois, j'ai découvert les Readable Streams. Même si ça existe depuis longtemps, je ne les avais jamais utilisés. Et la bonne nouvelle : leur implémentation est très simple.
L'idée : remplacer les console.log par un flux de logs en temps réel vers le frontend. Ainsi, l'utilisateur ne se contente pas de cliquer sur un bouton : il voit en direct ce qui se passe dans le script.
Exemple concret
Pour illustrer, j'ai simulé un petit batch de mise à jour de 5 produits :
Dans le terminal, on voit tous les logs correctement, mais ce n'est pas idéal pour l'utilisateur.
Démonstration de la mise en place des Readable Streams
Passage au temps réel avec SSE (Server-Sent Events)
Voici comment j'ai amélioré le système :
Côté frontend :
Côté backend :
Les bénéfices
Avec ce système :
Conclusion
Passer des console.log à un flux de logs en temps réel avec Readable Streams et SSE change complètement la manière de gérer les gros scripts backend. C'est simple à mettre en place et vraiment utile pour les développeurs comme pour les utilisateurs finaux.
Si vous voulez en savoir plus, je vous encourage à tester vous-même cette méthode sur vos scripts, et à laisser vos commentaires ou questions : j'adore lire vos retours !