Generator-based framework for piping log data (and other discrete event sources) from inputs to outputs