diff options
| author | Andrew Gallant (Ocelot) <[email protected]> | 2012-05-16 23:57:26 -0400 |
|---|---|---|
| committer | Andrew Gallant (Ocelot) <[email protected]> | 2012-05-16 23:57:26 -0400 |
| commit | cb3b697335e3fe48cc89b8fcab09c3c7ed124439 (patch) | |
| tree | b843af0c7593f45476574a90e015962683c06354 /log.go | |
| parent | f4ec34d9d9e2e185b1104a5228c582d11560f6f1 (diff) | |
Add new logger type so that it can be shut off.
Diffstat (limited to 'log.go')
| -rw-r--r-- | log.go | 85 |
1 files changed, 85 insertions, 0 deletions
@@ -0,0 +1,85 @@ +package xgb + +import ( + "log" + "os" +) + +// Log controls whether XGB emits errors to stderr. By default, it is enabled. +var PrintLog = true + +// log is a wrapper around a log.PrintLogger so we can control whether it should +// output anything. +type xgblog struct { + *log.Logger +} + +func newLogger() xgblog { + return xgblog{log.New(os.Stderr, "XGB: ", log.Lshortfile)} +} + +func (lg xgblog) Print(v ...interface{}) { + if PrintLog { + lg.Logger.Print(v...) + } +} + +func (lg xgblog) Printf(format string, v ...interface{}) { + if PrintLog { + lg.Logger.Printf(format, v...) + } +} + +func (lg xgblog) Println(v ...interface{}) { + if PrintLog { + lg.Logger.Println(v...) + } +} + +func (lg xgblog) Fatal(v ...interface{}) { + if PrintLog { + lg.Logger.Fatal(v...) + } else { + os.Exit(1) + } +} + +func (lg xgblog) Fatalf(format string, v ...interface{}) { + if PrintLog { + lg.Logger.Fatalf(format, v...) + } else { + os.Exit(1) + } +} + +func (lg xgblog) Fatalln(v ...interface{}) { + if PrintLog { + lg.Logger.Fatalln(v...) + } else { + os.Exit(1) + } +} + +func (lg xgblog) Panic(v ...interface{}) { + if PrintLog { + lg.Logger.Panic(v...) + } else { + panic("") + } +} + +func (lg xgblog) Panicf(format string, v ...interface{}) { + if PrintLog { + lg.Logger.Panicf(format, v...) + } else { + panic("") + } +} + +func (lg xgblog) Panicln(v ...interface{}) { + if PrintLog { + lg.Logger.Panicln(v...) + } else { + panic("") + } +} |
