Improve custom logger: Use stdlib's existing logger variable by default

Follow-up on #105. Don't allocate new stdlib's logger and reuse
the default logger (unexported) variable. This will enable people
make custom changes to the std logger, ie. log.SetFlags(),
log.SetPrefix() or log.SetOutput() without having to duplicate
the same code and applying it to goose logger.
pull/147/head
Vojtech Vitek 2019-03-04 13:36:48 -05:00
parent 3c2a65ec01
commit 40e1a66465
1 changed files with 10 additions and 2 deletions

12
log.go
View File

@ -2,10 +2,9 @@ package goose
import (
std "log"
"os"
)
var log Logger = std.New(os.Stderr, "", std.LstdFlags)
var log Logger = &stdLogger{}
// Logger is standart logger interface
type Logger interface {
@ -20,3 +19,12 @@ type Logger interface {
func SetLogger(l Logger) {
log = l
}
// stdLogger is a default logger that outputs to a stdlib's log.std logger.
type stdLogger struct{}
func (*stdLogger) Fatal(v ...interface{}) { std.Fatal(v...) }
func (*stdLogger) Fatalf(format string, v ...interface{}) { std.Fatalf(format, v...) }
func (*stdLogger) Print(v ...interface{}) { std.Print(v...) }
func (*stdLogger) Println(v ...interface{}) { std.Println(v...) }
func (*stdLogger) Printf(format string, v ...interface{}) { std.Printf(format, v...) }