databricks-cli/bundle/config/mutator/python/log_writer.go

43 lines
706 B
Go
Raw Normal View History

package python
import (
"bufio"
"bytes"
"context"
"io"
"github.com/databricks/cli/libs/log"
)
type logWriter struct {
ctx context.Context
prefix string
buf bytes.Buffer
}
// newLogWriter creates a new io.Writer that writes to log with specified prefix.
func newLogWriter(ctx context.Context, prefix string) io.Writer {
return &logWriter{
ctx: ctx,
prefix: prefix,
}
}
func (p *logWriter) Write(bytes []byte) (n int, err error) {
p.buf.Write(bytes)
scanner := bufio.NewScanner(&p.buf)
for scanner.Scan() {
line := scanner.Text()
log.Debugf(p.ctx, "%s%s", p.prefix, line)
}
remaining := p.buf.Bytes()
p.buf.Reset()
p.buf.Write(remaining)
return len(bytes), nil
}