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