package tracer import ( "encoding/json" "fmt" "os" ) type jsonTracerTransport struct { out *os.File } func NewJsonTracerTransport(out *os.File) TracerTransport { return &jsonTracerTransport{ out: out, } } func (jtt *jsonTracerTransport) Transport(evt TracerTransportEvent) error { var e interface{} if evt.lotusTraceEvent != nil { e = *evt.lotusTraceEvent } else if evt.pubsubTraceEvent != nil { e = *evt.pubsubTraceEvent } else { return nil } jsonEvt, err := json.Marshal(e) if err != nil { return fmt.Errorf("error while marshaling event: %s", err) } _, err = jtt.out.Write(jsonEvt) return err }