code: func (cl *ChannelLogger) DrainForever(logger log.Logger, errCh channels.Channel) {
  	// logLine could be nil if channel was closed while waiting for next line
  	for logLine := cl.WaitReadLogLine(); logLine != nil; logLine = cl.WaitReadLogLine() {
  		err := logger.Log(logLine...)
  		if err != nil && errCh != nil {
  			errCh.In() <- err
  		}
  	}
  }
docs: // Enters an infinite loop that will drain any log lines from the passed logger.
  // You may pass in a channel
  //
  // Exits if the channel is closed.