RocketMQ客户端修改默认日志配置【golang版】

前置说明

go默认使用logrus,但是提供了接口,可以自定义日志实现,官网说明如下:

Set Logger

Go Client define the Logger interface for log output, user can specify implementation of private. in default, client use logrus.

rlog.SetLogger(Logger)

适用场景

自定义日志格式、日志输出目录(采集、监控、统计分析等场景下使用)

示例

自定义日志实现

type myLogger struct {
	flag string
}

func (l *myLogger) Info(msg string, fields map[string]interface{}) {
	if msg == "" && len(fields) == 0 {
		return
	}
	log.Println(l.flag, "[info]", msg)
}

func (l *myLogger) Warning(msg string, fields map[string]interface{}) {
	if msg == "" && len(fields) == 0 {
		return
	}
	log.Println(l.flag, "[warn]", msg)
}

func (l *myLogger) Error(msg string, fields map[string]interface{}) {
	if msg == "" && len(fields) == 0 {
		return
	}
	log.Println(l.flag, "[error]", msg)
}

func (l *myLogger) Fatal(msg string, fields map[string]interface{}) {
	if msg == "" && len(fields) == 0 {
		return
	}
	log.Fatal(l.flag, "[fatal]", msg)
}

启动的时候设置日志实现

func main() {
	// 设置日志,默认使用logrus
	rlog.SetLogger(&myLogger{flag: "xuxd"})
    // 其它逻辑
    ...
}

运行结果如下:

设置日志级别

go client 默认打印info级别日志,我上图打印的有debug,是因为我设置日志级别为debug,只用设置环境变量:ROCKETMQ_GO_LOG_LEVEL=debug

我用的goland,示例如下:

日志源码文件

源码文件名:log.go

type Logger interface {
	Debug(msg string, fields map[string]interface{})
	Info(msg string, fields map[string]interface{})
	Warning(msg string, fields map[string]interface{})
	Error(msg string, fields map[string]interface{})
	Fatal(msg string, fields map[string]interface{})
}

func init() {
	r := &defaultLogger{
		logger: logrus.New(),
	}
	level := os.Getenv("ROCKETMQ_GO_LOG_LEVEL")
	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)
	}
	rLog = r
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不识君的荒漠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值