// Logs obtains the stderr and stdout log messages from the container. func Logs(containerID string, stream StdStream) (string, error) { // Create the output buffer. buf := bytes.NewBuffer(nil) // Create the logs options. opts := docker.LogsOptions{ Container: containerID, Follow: false, OutputStream: buf, ErrorStream: buf, } if stream == StdStreamCombined { opts.Stdout = true opts.Stderr = true } else if stream == StdStreamOutput { opts.Stdout = true opts.Stderr = false } else if stream == StdStreamError { opts.Stdout = false opts.Stderr = true } else { return "", fmt.Errorf("invalid stream option!") } // Obtain the logs. err := Client.Logs(opts) if err != nil { return "", fmt.Errorf("failed to get container '%s' logs: %v", containerID, err) } return strings.TrimSpace(buf.String()), nil }