should IO errors really throw up to the caller of log.info or whatever, or should we be catching them ?