Lo que veo en el ejemplo de Ñuño es un intento de replicar lo que hace una libreria de logging solida, que permite hacer cosas como:
Código Delphi
[-]
log.info("A")
log.warning("B")
log.debug("C")
Y se puede setear que los log solo se muestren en el nivel deseado.
Pero eso es tangencial al problema propuesto en este hilo. Osea, un log no tiene que ver con control de flujo.