Skip to content

Commit 38e38ce

Browse files
committed
added multiline support to prefixed writer
1 parent f462c99 commit 38e38ce

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

prefixed_writer.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package framework
22

3-
import "io"
3+
import (
4+
"bytes"
5+
"io"
6+
)
47

58
type PrefixedWriter struct {
69
w io.Writer
@@ -12,12 +15,13 @@ func NewPrefixedWriter(w io.Writer, prefix string) *PrefixedWriter {
1215
}
1316

1417
func (w *PrefixedWriter) Write(p []byte) (int, error) {
15-
msg := make([]byte, len(p)+len(w.prefix))
16-
msg = append(msg, w.prefix...)
17-
msg = append(msg, p...)
18-
19-
if _, err := w.w.Write(msg); err != nil {
20-
return 0, err
18+
for line := range bytes.SplitSeq(p, []byte("\n")) {
19+
msg := make([]byte, len(line)+len(w.prefix))
20+
msg = append(msg, w.prefix...)
21+
msg = append(msg, line...)
22+
if _, err := w.w.Write(msg); err != nil {
23+
return 0, err
24+
}
2125
}
2226
return len(p), nil
2327
}

0 commit comments

Comments
 (0)