wormhole/node/cmd/guardiand/logging.go

30 lines
529 B
Go

package guardiand
import (
"unicode"
"go.uber.org/zap/buffer"
"go.uber.org/zap/zapcore"
)
type consoleEncoder struct {
zapcore.Encoder
}
func (e consoleEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field) (*buffer.Buffer, error) {
buf, err := e.Encoder.EncodeEntry(entry, fields)
if err != nil {
buf.Free()
return nil, err
}
b := buf.Bytes()
for i := range b {
if unicode.IsControl(rune(b[i])) && !unicode.IsSpace(rune(b[i])) {
b[i] = '\x1A' // Substitute character
}
}
return buf, nil
}