diff --git a/exported.go b/exported.go index 7561c98..13ed53b 100644 --- a/exported.go +++ b/exported.go @@ -23,12 +23,26 @@ package flagger +import ( + // stdlib + "log" + "os" +) + var ( logger LoggerInterface ) +// New creates new Flagger instance. +// If no logger will be passed - we will use default "log" module and will +// print logs to stdout. func New(l LoggerInterface) *Flagger { - logger = l + if l == nil { + lg := log.New(os.Stdout, "Flagger: ", log.LstdFlags) + logger = LoggerInterface(lg) + } else { + logger = l + } f := Flagger{} return &f } diff --git a/flagger_test.go b/flagger_test.go index 4920c77..e028204 100644 --- a/flagger_test.go +++ b/flagger_test.go @@ -43,6 +43,15 @@ func TestFlaggerInitialization(t *testing.T) { f.Initialize() } +func TestFlaggerInitializationWithNilLogger(t *testing.T) { + fl := New(nil) + if f == nil { + t.Fatal("Logger initialization failed!") + t.FailNow() + } + fl.Initialize() +} + func TestFlaggerAddBoolFlag(t *testing.T) { flagTestBool := Flag{ Name: "testboolflag",