| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package rocketmq
- import (
- "strings"
- "sync"
- "git.shuncheng.lu/bigthing/gocommon/pkg/internal/util"
- "git.shuncheng.lu/bigthing/gocommon/pkg/internal/file"
- "github.com/apache/rocketmq-client-go/v2/rlog"
- "github.com/sirupsen/logrus"
- )
- // 只允许初始化一次
- var (
- initLoggerOnce sync.Once
- )
- func initLogger(config *Config) {
- if config.LogFileName == "" {
- return
- }
- initLoggerOnce.Do(func() {
- logger, err := newRocketLogger(config.LogLevel, file.NewDefaultRotateWriter(config.LogFileName))
- if err != nil {
- panic(err)
- }
- rlog.SetLogger(logger)
- })
- }
- func newRocketLogger(level string, config file.RotateWriterConfig) (rlog.Logger, error) {
- r := &defaultLogger{
- logger: logrus.New(),
- }
- switch strings.ToLower(level) {
- case "debug":
- r.logger.SetLevel(logrus.DebugLevel)
- case "warn":
- r.logger.SetLevel(logrus.WarnLevel)
- case "error":
- r.logger.SetLevel(logrus.ErrorLevel)
- default:
- r.logger.SetLevel(logrus.InfoLevel)
- }
- writer, err := config.NewWriter()
- if err != nil {
- return nil, err
- }
- r.logger.Out = writer
- util.Infof("[Rocket-MQ] init logger success, level: %v, filename: %v", r.logger.Level, config.FileName)
- return r, nil
- }
- // copy https://github.com/apache/rocketmq-client-go/blob/v2.0.0/rlog/log.go#L66
- type defaultLogger struct {
- logger *logrus.Logger
- }
- func (l *defaultLogger) Debug(msg string, fields map[string]interface{}) {
- if msg == "" && len(fields) == 0 {
- return
- }
- l.logger.WithFields(fields).Debug(msg)
- }
- func (l *defaultLogger) Info(msg string, fields map[string]interface{}) {
- if msg == "" && len(fields) == 0 {
- return
- }
- l.logger.WithFields(fields).Info(msg)
- }
- func (l *defaultLogger) Warning(msg string, fields map[string]interface{}) {
- if msg == "" && len(fields) == 0 {
- return
- }
- l.logger.WithFields(fields).Warning(msg)
- }
- func (l *defaultLogger) Error(msg string, fields map[string]interface{}) {
- if msg == "" && len(fields) == 0 {
- return
- }
- l.logger.WithFields(fields).WithFields(fields).Error(msg)
- }
- func (l *defaultLogger) Fatal(msg string, fields map[string]interface{}) {
- if msg == "" && len(fields) == 0 {
- return
- }
- l.logger.WithFields(fields).Fatal(msg)
- }
|