log_writer.go 604 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package log
  2. import (
  3. "io"
  4. "strings"
  5. )
  6. type logWriterImpl struct {
  7. log Logger
  8. level Lvl
  9. prefix string
  10. }
  11. func NewLogWriter(log Logger, level Lvl, prefix string) io.Writer {
  12. return &logWriterImpl{
  13. log: log,
  14. level: level,
  15. prefix: prefix,
  16. }
  17. }
  18. func (l *logWriterImpl) Write(p []byte) (n int, err error) {
  19. message := l.prefix + strings.TrimSpace(string(p))
  20. switch l.level {
  21. case LvlCrit:
  22. l.log.Crit(message)
  23. case LvlError:
  24. l.log.Error(message)
  25. case LvlWarn:
  26. l.log.Warn(message)
  27. case LvlInfo:
  28. l.log.Info(message)
  29. default:
  30. l.log.Debug(message)
  31. }
  32. return len(p), nil
  33. }