mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-19 14:57:04 +00:00
Introduce a trace wrapper
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.
This commit is contained in:
44
internal/trace/trace.go
Normal file
44
internal/trace/trace.go
Normal file
@@ -0,0 +1,44 @@
|
||||
// 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()
|
||||
}
|
||||
Reference in New Issue
Block a user