go_dreamfactory/utils/trace.go
2022-07-21 14:44:29 +08:00

48 lines
965 B
Go

package utils
import (
"fmt"
"runtime"
"time"
"go_dreamfactory/lego/sys/log"
)
const (
UID = "uid"
Module = "module"
FuncName = "funcName"
FuncArgs = "funcArgs"
FuncRsp = "response"
TimeCost = "timeCost"
)
//打印函数处理信息
// func TraceFunc(uid string, module string, funcName string, funcArgs interface{}, rsp interface{}) {
// log.Debugf("traceFunc uid:%s module:%s funcName:%s funcArgs:%v", uid, module, funcName, funcArgs)
// }
//打印函数处理时间
func TraceTimeCost(funcName string, invocation time.Time) {
elapsed := time.Since(invocation)
cost := elapsed.Milliseconds()
lg := fmt.Sprintf("funcName:%s timeCost:%v", funcName, cost)
if cost < 20 {
log.Debugf(lg)
return
}
log.Warnf(lg)
}
//打印异常
func TraceError(err error) (b bool) {
if err != nil {
pc, fn, line, _ := runtime.Caller(1)
log.Errorf("[error] in %s[%s:%d] %v", runtime.FuncForPC(pc).Name(), fn, line, err)
b = true
}
return
}