logs.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package logs
  2. import (
  3. "context"
  4. "github.com/gogf/gf/errors/gerror"
  5. "github.com/gogf/gf/frame/g"
  6. )
  7. type RequestLogReq struct {
  8. Path string //存储路径
  9. RequestURI string //请求URI
  10. RequestID string //请求RequestID
  11. Method string //请求方法
  12. Params string //请求参数
  13. Response string //响应参数
  14. Err error //错误信息
  15. ServerName string //请求服务名称
  16. ResponseTime int64 //响应时间 毫秒级
  17. }
  18. const FormatErr = "参数【%v】错误【%v】响应时间【%v】"
  19. const FormatSuc = "参数【%v】响应【%v】响应时间【%v】"
  20. //统一请求日志
  21. func RequestLog(req RequestLogReq) {
  22. Info(req.Path, "请求ID:【%v】 服务名称: 【%v】 请求路径:【%v】 请求方法: 【%v】 请求参数: 【%v】 响应参数: 【%v】 响应时间:【%v ms】error:【%v】",
  23. req.RequestID, req.ServerName, req.RequestURI, req.Method, req.Params, req.Response, req.ResponseTime, nil)
  24. if req.Err != nil {
  25. Error("%+v", gerror.Wrap(req.Err, req.RequestID))
  26. }
  27. }
  28. //记录info日志
  29. func Info(path string, format string, v ...interface{}) {
  30. g.Log().Async().Cat(path).Infof(format, v...)
  31. }
  32. //记录error日志
  33. func Error(format string, v ...interface{}) {
  34. g.Log().Async().Cat("error").Infof(format, v...)
  35. }
  36. //检查错误
  37. func CheckErr(err error, extra string) bool {
  38. if err != nil {
  39. Error("%+v", gerror.Wrap(err, extra))
  40. return true
  41. }
  42. return false
  43. }
  44. func Infof(ctx context.Context, path string, format string, v ...interface{}) {
  45. g.Log().Ctx(ctx).Cat(path).Infof(format, v...)
  46. }
  47. func Errorf(ctx context.Context, format string, v ...interface{}) {
  48. g.Log().Ctx(ctx).Cat("error").Infof(format, v...)
  49. }