Files
filer/pkg/logger/logger.go
Олег Бородин b1daca98b5 initial import
2023-10-20 13:43:23 +02:00

77 lines
1.6 KiB
Go

package logger
import (
"fmt"
"os"
"time"
"github.com/sirupsen/logrus"
)
type LogFormatter struct {
}
func (lf *LogFormatter) Format(entry *logrus.Entry) ([]byte, error) {
var err error
timeStamp := time.Now().Format(time.RFC3339)
levelString := entry.Level.String()
labelString := ""
for key, value := range entry.Data {
labelString += fmt.Sprintf("<%s:%v>", key, value)
}
if labelString != "" {
message := fmt.Sprintf("%s %s %s [%s]\n", timeStamp, levelString, labelString, entry.Message)
return []byte(message), err
}
message := fmt.Sprintf("%s %s [%s]\n", timeStamp, levelString, entry.Message)
return []byte(message), err
}
func init() {
logrus.SetOutput(os.Stdout)
logrus.SetFormatter(&LogFormatter{})
logrus.SetLevel(logrus.DebugLevel)
}
type Logger struct {
logrus *logrus.Entry
}
func NewLogger(label string) *Logger {
return &Logger{
logrus: logrus.WithField("object", label),
}
}
func (log *Logger) Errorf(format string, args ...any) {
log.logrus.Errorf(format, args...)
}
func (log *Logger) Debugf(format string, args ...any) {
log.logrus.Debugf(format, args...)
}
func (log *Logger) Warningf(format string, args ...any) {
log.logrus.Warningf(format, args...)
}
func (log *Logger) Infof(format string, args ...any) {
log.logrus.Infof(format, args...)
}
func (log *Logger) Error(args ...any) {
log.logrus.Error(args...)
}
func (log *Logger) Debug(args ...any) {
log.logrus.Debug(args...)
}
func (log *Logger) Warning(args ...any) {
log.logrus.Warning(args...)
}
func (log *Logger) Info(args ...any) {
log.logrus.Info(args...)
}