Files
kratos-bootstrap/logger/logrus/client.go
2024-11-14 15:47:21 +08:00

49 lines
1.1 KiB
Go

package logrus
import (
logrusLogger "github.com/go-kratos/kratos/contrib/log/logrus/v2"
"github.com/go-kratos/kratos/v2/log"
"github.com/sirupsen/logrus"
conf "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1"
)
// NewLogger 创建一个新的日志记录器 - Logrus
func NewLogger(cfg *conf.Logger) log.Logger {
if cfg == nil || cfg.Logrus == nil {
return nil
}
loggerLevel, err := logrus.ParseLevel(cfg.Logrus.Level)
if err != nil {
loggerLevel = logrus.InfoLevel
}
var loggerFormatter logrus.Formatter
switch cfg.Logrus.Formatter {
default:
fallthrough
case "text":
loggerFormatter = &logrus.TextFormatter{
DisableColors: cfg.Logrus.DisableColors,
DisableTimestamp: cfg.Logrus.DisableTimestamp,
TimestampFormat: cfg.Logrus.TimestampFormat,
}
break
case "json":
loggerFormatter = &logrus.JSONFormatter{
DisableTimestamp: cfg.Logrus.DisableTimestamp,
TimestampFormat: cfg.Logrus.TimestampFormat,
}
break
}
logger := logrus.New()
logger.Level = loggerLevel
logger.Formatter = loggerFormatter
wrapped := logrusLogger.NewLogger(logger)
return wrapped
}