44 lines
1018 B
Go
44 lines
1018 B
Go
package tunnelrpc
|
|
|
|
import (
|
|
"context"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"golang.org/x/net/trace"
|
|
"zombiezen.com/go/capnproto2/rpc"
|
|
)
|
|
|
|
// ConnLogger wraps a logrus *log.Entry for a connection.
|
|
type ConnLogger struct {
|
|
Entry *log.Entry
|
|
}
|
|
|
|
func (c ConnLogger) Infof(ctx context.Context, format string, args ...interface{}) {
|
|
c.Entry.Infof(format, args...)
|
|
}
|
|
|
|
func (c ConnLogger) Errorf(ctx context.Context, format string, args ...interface{}) {
|
|
c.Entry.Errorf(format, args...)
|
|
}
|
|
|
|
func ConnLog(log *log.Entry) 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})
|
|
}
|