I don't think having very few is a good scenario. I have written a compiler and had about 10 different stacks. Changing every single one just to be able to add a logger to a single function somewhere is honestly insane.
What I see in the wild is having one huge kitchen sink stack which sucks as well.