consumer/async.go
func (c *Consumer) TailingLogs(appGuid, authToken string) (<-chan *events.LogMessage, <-chan error) {
	return c.tailingLogs(appGuid, authToken, true)
}
func (c *Consumer) TailingLogs(appGuid, authToken string) (<-chan *events.LogMessage, <-chan error) {
	return c.tailingLogs(appGuid, authToken, true)
}
func ( c * Consumer ) TailingLogs ( appGuid , authToken string ) ( <- chan * events . LogMessage , <- chan error ) { return c . tailingLogs ( appGuid , authToken , true ) }
// TailingLogs listens indefinitely for log messages only; other event types
// are dropped.
// Whenever an error is encountered, the error will be sent down the error
// channel and TailingLogs will attempt to reconnect up to 5 times.  After
// five failed reconnection attempts, TailingLogs will give up and close the
// error and LogMessage channels.
//
// If c is closed, the returned channels will both be closed.
//
// Errors must be drained from the returned error channel for it to continue
// retrying; if they are not drained, the connection attempts will hang.
TailingLogs listens indefinitely for log messages only ; other event types are dropped . Whenever an error is encountered the error will be sent down the error channel and TailingLogs will attempt to reconnect up to 5 times . After five failed reconnection attempts TailingLogs will give up and close the error and LogMessage channels . If c is closed the returned channels will both be closed . Errors must be drained from the returned error channel for it to continue retrying ; if they are not drained the connection attempts will hang .