@Leonidas
Dein Beispiel ist geradezu prädestiniert für eine anständige Endlosschleife, die dann auftritt, wenn man logging so konfiguriert, dass es nach sys.stdout loggt
Imho ist die Aufgabestellung an sich auch eher unsinnig. Wenn man logging möchte, dann sollte man lieber search & replace über die Quellen laufen lassen, und gleich richtig auf logging.* Aufrufe umstellen. Zum einen fördert das die Lesbarkeit, weil jeder weiß, dass hier auch wirklich logging genutzt wird, was bei einer sys.stdout-Lösung ja nicht automatisch der Fall ist

Zum anderen kann man dann die Ausgabe auch richtig steuern, in dem man z.B. für verschiedene Unterbereiche der Anwendung verschiedene Logger nutzt.
Mehraufwand sehe ich da auch nicht, denn wenn man logging richtig nutzen will, muss man eh früher oder später direkt logging-Aufrufe einsetzen.
Zudem ist die Lösung auch ziemlich fragil, weil nicht garantiert werden kann, dass sys.stdout nicht doch irgendwo mit einem anderen Objekt überschrieben wird.