Open jellevandenhooff opened 7 months ago
[splitting this into into 3 issues]
I agree that this would be helpful for readability, but I'm a bit worried that putting logs out of order could make it harder to think about causal ordering, in systems where that matters. I wonder how often that would come up.
I imagine I'm currently the heaviest run
user, so I'll try to keep this in the back of my mind for a while and see if I end up with an opinion about the tradeoff.
It might be nice to buffer output a bit for interleaved tasks: If I have two concurrent running tasks (say a front-end build and back-end build, or front-end and back-end tests), and they are both running at high speed (say they're cached go tests), right now the logs will end up interleaved like
AAA BBB AA BB AA BB
with whitespace in between each task switch. Mentally parsing the logs is more difficult because you repeatedly have to context switch. Also, though the spacing is nice for reading, it ends up taking a lot of space than necessary. What if the printer waited a little bit (maybe 100ms, maybe somehow cleverly calculated from task runtime or previous logging behavior) after printingAAA
, and if more logs came in, it would postpone outputting theB
so you'd getAAAAAA BBBBB
?