By walking observable sources I think you could build a tree of state. This could also be used to allow dynamic stream logging.