From 1535c74b0206c1af699156d76da4710d0995f713 Mon Sep 17 00:00:00 2001 From: Renan DelValle Date: Fri, 22 Jun 2018 12:37:54 -0700 Subject: [PATCH] Turning off debug mode for tests because it's too verbose. Making sure LevelLogger is initialized correctly under all scenarios. --- logger.go | 4 ++++ realis.go | 19 ++++++++++++------- realis_e2e_test.go | 3 +-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/logger.go b/logger.go index 4597dde..05a3e85 100644 --- a/logger.go +++ b/logger.go @@ -33,6 +33,10 @@ type LevelLogger struct { debug bool } +func (l *LevelLogger) EnableDebug(enable bool) { + l.debug = enable +} + func (l LevelLogger) DebugPrintf(format string, a ...interface{}) { if l.debug { l.Print("[DEBUG] ") diff --git a/realis.go b/realis.go index c4003e2..c590254 100644 --- a/realis.go +++ b/realis.go @@ -96,7 +96,7 @@ type RealisConfig struct { backoff Backoff transport thrift.TTransport protoFactory thrift.TProtocolFactory - logger Logger + logger *LevelLogger InsecureSkipVerify bool certspath string clientkey, clientcert string @@ -207,7 +207,7 @@ func ZookeeperOptions(opts ...ZKOpt) ClientOption { // Using the word set to avoid name collision with Interface. func SetLogger(l Logger) ClientOption { return func(config *RealisConfig) { - config.logger = l + config.logger = &LevelLogger{l, false} } } @@ -249,7 +249,7 @@ func NewRealisClient(options ...ClientOption) (Realis, error) { // Default configs config.timeoutms = 10000 config.backoff = defaultBackoff - config.logger = log.New(os.Stdout, "realis: ", log.Ltime|log.Ldate|log.LUTC) + config.logger = &LevelLogger{log.New(os.Stdout, "realis: ", log.Ltime|log.Ldate|log.LUTC), false} // Save options to recreate client if a connection error happens config.options = options @@ -259,18 +259,23 @@ func NewRealisClient(options ...ClientOption) (Realis, error) { opt(config) } + // TODO(rdelvalle): Move this logic to it's own function to make initialization code easier to read. + // Turn off all logging (including debug) if config.logger == nil { - config.logger = LevelLogger{NoopLogger{}, false} + config.logger = &LevelLogger{NoopLogger{}, false} } - config.logger.Println("Number of options applied to config: ", len(options)) - // Set a logger if debug has been set to true but no logger has been set if config.logger == nil && config.debug { - config.logger = log.New(os.Stdout, "realis: ", log.Ltime|log.Ldate|log.LUTC) + config.logger = &LevelLogger{log.New(os.Stdout, "realis: ", log.Ltime|log.Ldate|log.LUTC), true} } + // Note, by this point, a LevelLogger should have been created. + config.logger.EnableDebug(config.debug) + + config.logger.DebugPrintln("Number of options applied to config: ", len(options)) + //Set default Transport to JSON if needed. if !config.jsonTransport && !config.binTransport { config.jsonTransport = true diff --git a/realis_e2e_test.go b/realis_e2e_test.go index d27bc11..342dbb1 100644 --- a/realis_e2e_test.go +++ b/realis_e2e_test.go @@ -40,8 +40,7 @@ func TestMain(m *testing.M) { // New configuration to connect to Vagrant image r, err = realis.NewRealisClient(realis.SchedulerUrl("http://192.168.33.7:8081"), realis.BasicAuth("aurora", "secret"), - realis.TimeoutMS(20000), - realis.Debug()) + realis.TimeoutMS(20000)) if err != nil { fmt.Println("Please run vagrant box before running test suite")