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  }