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 }