package tunnelrpc import ( "context" "github.com/rs/zerolog" "golang.org/x/net/trace" "zombiezen.com/go/capnproto2/rpc" ) // ConnLogger wraps a Zerolog Logger for a connection. type ConnLogger struct { Log *zerolog.Logger } func (c ConnLogger) Infof(ctx context.Context, format string, args ...interface{}) { c.Log.Info().Msgf(format, args...) } func (c ConnLogger) Errorf(ctx context.Context, format string, args ...interface{}) { c.Log.Error().Msgf(format, args...) } func ConnLog(log *zerolog.Logger) rpc.ConnOption { return rpc.ConnLog(ConnLogger{log}) } // ConnTracer wraps a trace.EventLog for a connection. type ConnTracer struct { Events trace.EventLog } func (c ConnTracer) Infof(ctx context.Context, format string, args ...interface{}) { c.Events.Printf(format, args...) } func (c ConnTracer) Errorf(ctx context.Context, format string, args ...interface{}) { c.Events.Errorf(format, args...) } func ConnTrace(events trace.EventLog) rpc.ConnOption { return rpc.ConnLog(ConnTracer{events}) }