49 lines
1.0 KiB
Go
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
|
|
}
|