Use bufio.Scanner instead of strings.Split for line iteration
Improve efficiency when iterating over log lines by using bufio.Scanner
instead of splitting the entire log string and then iterating over it.
Co-Authored-By: sketch
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index 1aeb7e8..3a839e0 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -2,6 +2,7 @@
package dockerimg
import (
+ "bufio"
"bytes"
"context"
"crypto/rand"
@@ -213,8 +214,9 @@
fmt.Fprintf(os.Stderr, "docker logs failed: %v\n", err)
return
}
- logLines := strings.Split(string(out), "\n")
- for _, logLine := range logLines {
+ scanner := bufio.NewScanner(bytes.NewReader(out))
+ for scanner.Scan() {
+ logLine := scanner.Text()
if !strings.HasPrefix(logLine, "structured logs:") {
continue
}