Files
core/http/log.go
Jan Stabenow 9c0b535199 Add v16.7.2
2022-05-13 19:26:45 +02:00

39 lines
585 B
Go

package http
import (
"encoding/json"
"io"
"strings"
)
type logwrapper struct {
writer io.Writer
}
type logentry struct {
Message string `json:"message"`
}
func newLogwrapper(writer io.Writer) *logwrapper {
return &logwrapper{
writer: writer,
}
}
func (b *logwrapper) Write(p []byte) (int, error) {
log := logentry{}
if err := json.Unmarshal(p, &log); err == nil {
if len(log.Message) != 0 {
lines := strings.Split(log.Message, "\n")
for _, line := range lines {
b.writer.Write([]byte(line))
}
return len(p), nil
}
}
return b.writer.Write(p)
}