github.com/influx6/npkg@v0.8.8/njson/logger.go (about) 1 package njson 2 3 import ( 4 "github.com/influx6/npkg" 5 ) 6 7 func jsonMaker() npkg.Encoder { 8 return JSONB() 9 } 10 11 func Log(log Logger) *LogStack { 12 var writer = &writeLogger{log} 13 var newStack = &LogStack{npkg.NewWriteStack(jsonMaker, writer)} 14 return newStack 15 } 16 17 type LogStack struct { 18 *npkg.WriteStack 19 } 20 21 type Logger interface { 22 Log(*JSON) 23 } 24 25 type writeLogger struct { 26 Logger 27 } 28 29 func (l *writeLogger) Write(v npkg.Encoded) { 30 if vjson, ok := v.(*JSON); ok { 31 l.Log(vjson) 32 } 33 }