mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
This patch introduces a wrapper to golang.org/x/net/trace with a new method that will be useful later on, making logging and tracing less verbose.
45 lines
804 B
Go
45 lines
804 B
Go
// Package trace extends golang.org/x/net/trace.
|
|
package trace
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/golang/glog"
|
|
nettrace "golang.org/x/net/trace"
|
|
)
|
|
|
|
type Trace struct {
|
|
family string
|
|
title string
|
|
t nettrace.Trace
|
|
}
|
|
|
|
func New(family, title string) *Trace {
|
|
return &Trace{family, title, nettrace.New(family, title)}
|
|
}
|
|
|
|
func (t *Trace) LazyPrintf(format string, a ...interface{}) {
|
|
t.t.LazyPrintf(format, a...)
|
|
|
|
if glog.V(2) {
|
|
msg := fmt.Sprintf("%p %s %s: %+q", t, t.family, t.title,
|
|
fmt.Sprintf(format, a...))
|
|
glog.InfoDepth(1, msg)
|
|
}
|
|
}
|
|
|
|
func (t *Trace) SetError() {
|
|
t.t.SetError()
|
|
}
|
|
|
|
func (t *Trace) Errorf(format string, a ...interface{}) error {
|
|
err := fmt.Errorf(format, a...)
|
|
t.t.SetError()
|
|
t.LazyPrintf("Error: %v", err)
|
|
return err
|
|
}
|
|
|
|
func (t *Trace) Finish() {
|
|
t.t.Finish()
|
|
}
|