github.com/gorgonia/agogo@v0.1.1/mcts/debug.go (about) 1 // +build debug 2 3 package mcts 4 5 import ( 6 "bytes" 7 "fmt" 8 ) 9 10 type logstruct struct { 11 msg string 12 args []interface{} 13 } 14 15 type lumberjack struct { 16 *bytes.Buffer 17 ch chan logstruct 18 } 19 20 func makeLumberJack() lumberjack { 21 return lumberjack{ 22 Buffer: new(bytes.Buffer), 23 ch: make(chan logstruct), 24 } 25 } 26 27 func (l *lumberjack) start() { 28 for s := range l.ch { 29 fmt.Fprintf(l.Buffer, s.msg, s.args...) 30 l.WriteByte('\n') 31 } 32 } 33 34 func (l *lumberjack) log(msg string, args ...interface{}) { 35 l.ch <- logstruct{msg: msg, args: args} 36 } 37 38 func (l *lumberjack) Reset() { l.Buffer.Reset() } 39 40 func (l lumberjack) Log() string { return l.String() }