La décision de flusher est de la responsabilité de std::cout ou std::cerr, voire std::clog. À noter que std::cerr (et donc std::cerr) n'est pas bufferisé dans un environnement POSIX. Tout ça est en fait défini dans POSIX, pour les flux standard de sortie. L'idée est que STDERR n'est pas souvent écrit, et donc il n'y a pas de problème à flusher, et ça répond surtout à ton interrogation ; alors que STDOUT est destiné à envoyé du bois, et doit donc être configuré au mieux pour une sortie optimale.
Ensuite, si tu utilises un autre système de log, ça configuration devrait se faire en fonction des compromis que tu dois faire. Il n'y a là pas de solution universelle, mais une question de besoin de l'application et de ses clients.
[^] # Re: Brace yourselves, bullshit is coming.
Posté par LupusMic (site web personnel, Mastodon) . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 2.
La décision de flusher est de la responsabilité de std::cout ou std::cerr, voire std::clog. À noter que std::cerr (et donc std::cerr) n'est pas bufferisé dans un environnement POSIX. Tout ça est en fait défini dans POSIX, pour les flux standard de sortie. L'idée est que STDERR n'est pas souvent écrit, et donc il n'y a pas de problème à flusher, et ça répond surtout à ton interrogation ; alors que STDOUT est destiné à envoyé du bois, et doit donc être configuré au mieux pour une sortie optimale.
Ensuite, si tu utilises un autre système de log, ça configuration devrait se faire en fonction des compromis que tu dois faire. Il n'y a là pas de solution universelle, mais une question de besoin de l'application et de ses clients.