logging.go 528 B

12345678910111213141516171819202122232425262728
  1. package guardiand
  2. import (
  3. "go.uber.org/zap/buffer"
  4. "go.uber.org/zap/zapcore"
  5. "unicode"
  6. )
  7. type consoleEncoder struct {
  8. zapcore.Encoder
  9. }
  10. func (e consoleEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field) (*buffer.Buffer, error) {
  11. buf, err := e.Encoder.EncodeEntry(entry, fields)
  12. if err != nil {
  13. buf.Free()
  14. return nil, err
  15. }
  16. b := buf.Bytes()
  17. for i := range b {
  18. if unicode.IsControl(rune(b[i])) && !unicode.IsSpace(rune(b[i])) {
  19. b[i] = '\x1A' // Substitute character
  20. }
  21. }
  22. return buf, nil
  23. }