lormatter/formatter.go
2023-04-03 00:01:19 +08:00

49 lines
1.0 KiB
Go

// Package easy allows to easily format output of Logrus logger
package easy
import (
"bytes"
"fmt"
"github.com/sirupsen/logrus"
)
// Formatter implements logrus.Formatter interface.
type Formatter struct{}
func (f *Formatter) shortLevel(level logrus.Level) string {
switch level {
case logrus.DebugLevel:
return "DEBU"
case logrus.InfoLevel:
return "INFO"
case logrus.WarnLevel:
return "WARN"
case logrus.ErrorLevel:
return "ERRO"
case logrus.FatalLevel:
return "FATAL"
case logrus.PanicLevel:
return "PANIC"
}
return "INFO"
}
// Format building log message.
func (f *Formatter) Format(entry *logrus.Entry) ([]byte, error) {
var builder bytes.Buffer
builder.WriteString("[")
builder.WriteString(f.shortLevel(entry.Level))
builder.WriteString("]")
builder.WriteString(" [")
builder.WriteString(entry.Time.Format("2006-01-02 15:04:05.000"))
builder.WriteString("]")
for k, val := range entry.Data {
builder.WriteString(fmt.Sprintf(" %s=%v", k, val))
}
return builder.Bytes(), nil
}