From acb84171e55d46dc1a5b9cc10b2bff53c2d2846b Mon Sep 17 00:00:00 2001 From: "Andrew Gallant (Ocelot)" Date: Wed, 16 May 2012 23:57:26 -0400 Subject: Add new logger type so that it can be shut off. --- nexgb/log.go | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 nexgb/log.go (limited to 'nexgb/log.go') diff --git a/nexgb/log.go b/nexgb/log.go new file mode 100644 index 0000000..eaaa57e --- /dev/null +++ b/nexgb/log.go @@ -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("") + } +} -- cgit v1.2.3-54-g00ecf