Add SetLogger method (#290)
* add coverage status label
* add SetLogger method
diff --git a/README.md b/README.md
index 0db29fa..fc59306 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
## RocketMQ Client Go
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
-[![TravisCI](https://travis-ci.org/apache/rocketmq-client-python.svg)](https://travis-ci.org/apache/rocketmq-client-go)
+[![TravisCI](https://travis-ci.org/apache/rocketmq-client-go.svg)](https://travis-ci.org/apache/rocketmq-client-go)
+[![Coverage](https://codecov.io/gh/apache/rocketmq-client-go/branch/native/graph/badge.svg)](https://codecov.io/gh/apache/rocketmq-client-go/branch/native)
The RocketMQ Client in pure go, the project is developing, **there is no any guarantee in production environment**. in next versions,
we will do our best to improve reliability, stability, usability and performance. the API may be changed, and more features will be added.
diff --git a/internal/route.go b/internal/route.go
index 95abecc..5851f85 100644
--- a/internal/route.go
+++ b/internal/route.go
@@ -121,7 +121,7 @@
if err != nil {
routeData, err = s.queryTopicRouteInfoFromServer(defaultTopic)
if err != nil {
- rlog.Warning("query topic route from server error: %s", map[string]interface{}{
+ rlog.Warning("query topic route from server error", map[string]interface{}{
rlog.LogKeyUnderlayError: err,
})
return nil
diff --git a/rlog/log.go b/rlog/log.go
index 72a4a01..426f698 100644
--- a/rlog/log.go
+++ b/rlog/log.go
@@ -18,6 +18,9 @@
package rlog
import (
+ "os"
+ "strings"
+
"github.com/sirupsen/logrus"
)
@@ -44,10 +47,21 @@
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
}
-var rLog *defaultLogger
+var rLog Logger
type defaultLogger struct {
logger *logrus.Logger
@@ -57,35 +71,40 @@
if msg == "" && len(fields) == 0 {
return
}
- rLog.logger.WithFields(fields).Debug(msg)
+ l.logger.WithFields(fields).Debug(msg)
}
func (l *defaultLogger) Info(msg string, fields map[string]interface{}) {
if msg == "" && len(fields) == 0 {
return
}
- rLog.logger.WithFields(fields).Info(msg)
+ l.logger.WithFields(fields).Info(msg)
}
func (l *defaultLogger) Warning(msg string, fields map[string]interface{}) {
if msg == "" && len(fields) == 0 {
return
}
- rLog.logger.WithFields(fields).Warning(msg)
+ l.logger.WithFields(fields).Warning(msg)
}
func (l *defaultLogger) Error(msg string, fields map[string]interface{}) {
if msg == "" && len(fields) == 0 {
return
}
- rLog.logger.WithFields(fields).WithFields(fields).Error(msg)
+ l.logger.WithFields(fields).WithFields(fields).Error(msg)
}
func (l *defaultLogger) Fatal(msg string, fields map[string]interface{}) {
if msg == "" && len(fields) == 0 {
return
}
- rLog.logger.WithFields(fields).Fatal(msg)
+ l.logger.WithFields(fields).Fatal(msg)
+}
+
+// SetLogger use specified logger user customized, in general, we suggest user to replace the default logger with specified
+func SetLogger(logger Logger) {
+ rLog = logger
}
func Debug(msg string, fields map[string]interface{}) {