diff --git a/dtmcli/logger/log.go b/dtmcli/logger/log.go index 7d3650a..81466b3 100644 --- a/dtmcli/logger/log.go +++ b/dtmcli/logger/log.go @@ -8,13 +8,27 @@ import ( "go.uber.org/zap/zapcore" ) -var logger *zap.SugaredLogger = nil +//var logger *zap.SugaredLogger = nil + +var logger Logger = nil func init() { InitLog("info") } -// InitLog is a initialization for a logger +// Logger logger interface +type Logger interface { + Debugf(format string, args ...interface{}) + Infof(format string, args ...interface{}) + Warnf(format string, args ...interface{}) + Errorf(format string, args ...interface{}) +} + +func WithLogger(log Logger) { + logger = log +} + +// InitLog is an initialization for a logger // level can be: debug info warn error func InitLog(level string) { config := zap.NewProductionConfig() diff --git a/dtmcli/logger/logger_test.go b/dtmcli/logger/logger_test.go index 669a39f..6320b58 100644 --- a/dtmcli/logger/logger_test.go +++ b/dtmcli/logger/logger_test.go @@ -1,6 +1,7 @@ package logger import ( + "github.com/sirupsen/logrus" "os" "testing" ) @@ -15,3 +16,14 @@ func TestInitLog(t *testing.T) { FatalfIf(false, "nothing") FatalIfError(nil) } + +func TestWithLogger(t *testing.T) { + logger := logrus.New() + WithLogger(logger) + Debugf("a debug msg") + Infof("a info msg") + Warnf("a warn msg") + Errorf("a error msg") + FatalfIf(false, "nothing") + FatalIfError(nil) +} \ No newline at end of file