Trace level for logger (#94)

* Add trace level to print out response thrift objects. Allows user to control whether these are printed or not to avoid pollution.

* Using named parameters to be more explicit about what is being set for LevelLogger.

* Adding TracePrint and TracePrintln. Inlined library level prefixes.
This commit is contained in:
Renan DelValle 2019-01-10 16:58:59 -08:00 committed by GitHub
parent 73e7ab2671
commit 1d3854aa5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 12 deletions

View file

@ -31,29 +31,49 @@ func (NoopLogger) Println(a ...interface{}) {}
type LevelLogger struct {
Logger
debug bool
trace bool
}
func (l *LevelLogger) EnableDebug(enable bool) {
l.debug = enable
}
func (l *LevelLogger) EnableTrace(enable bool) {
l.trace = enable
}
func (l LevelLogger) DebugPrintf(format string, a ...interface{}) {
if l.debug {
l.Print("[DEBUG] ")
l.Printf(format, a...)
l.Printf("[DEBUG] "+format, a...)
}
}
func (l LevelLogger) DebugPrint(a ...interface{}) {
if l.debug {
l.Print("[DEBUG] ")
l.Print(a...)
l.Print(append([]interface{}{"[DEBUG] "}, a)...)
}
}
func (l LevelLogger) DebugPrintln(a ...interface{}) {
if l.debug {
l.Print("[DEBUG] ")
l.Println(a...)
l.Println(append([]interface{}{"[DEBUG] "}, a)...)
}
}
func (l LevelLogger) TracePrintf(format string, a ...interface{}) {
if l.trace {
l.Printf("[TRACE] "+format, a...)
}
}
func (l LevelLogger) TracePrint(a ...interface{}) {
if l.trace {
l.Print(append([]interface{}{"[TRACE] "}, a)...)
}
}
func (l LevelLogger) TracePrintln(a ...interface{}) {
if l.trace {
l.Println(append([]interface{}{"[TRACE] "}, a)...)
}
}