diff --git a/bee.go b/bee.go index 4ae5111..645a979 100644 --- a/bee.go +++ b/bee.go @@ -90,6 +90,8 @@ var commands = []*Command{ cmdFix, } +var logger = GetBeeLogger(os.Stdout) + func main() { flag.Usage = usage flag.Parse() diff --git a/logger.go b/logger.go index 8189a52..9689a00 100644 --- a/logger.go +++ b/logger.go @@ -39,7 +39,8 @@ const ( var ( sequenceNo uint64 - logger *BeeLogger + instance *BeeLogger + once sync.Once ) // BeeLogger logs logging records to the specified io.Writer @@ -79,9 +80,15 @@ func init() { MustCheck(err) debugLogRecordTemplate, err = template.New("dbgLogRecordTemplate").Funcs(funcs).Parse(debugLogFormat) MustCheck(err) +} - // Initialize the logger instance with a NewColorWriter output - logger = &BeeLogger{output: NewColorWriter(os.Stdout)} +// GetBeeLogger initializes the logger instance with a NewColorWriter output +// and returns a singleton +func GetBeeLogger(w io.Writer) *BeeLogger { + once.Do(func() { + instance = &BeeLogger{output: NewColorWriter(w)} + }) + return instance } // SetOutput sets the logger output destination