redefine log interceptor

This commit is contained in:
yedf2 2021-08-09 20:44:46 +08:00
parent 74813607a3
commit 66d03f5ccb
4 changed files with 26 additions and 22 deletions

View File

@ -1,7 +1,6 @@
package dtmcli
import (
"context"
"database/sql"
"encoding/json"
"errors"
@ -14,7 +13,6 @@ import (
"time"
"github.com/go-resty/resty/v2"
grpc "google.golang.org/grpc"
)
// P2E panic to error
@ -107,6 +105,9 @@ func MustRemarshal(from interface{}, to interface{}) {
E2P(err)
}
// LogFunc log function type
type LogFunc func(format string, args ...interface{})
// Logf 输出日志
func Logf(format string, args ...interface{}) {
msg := fmt.Sprintf(format, args...)
@ -271,19 +272,3 @@ func CheckResult(res interface{}, err error) error {
}
return err
}
// GrpcServerLog 打印grpc服务端的日志
func GrpcServerLog(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
Logf("grpc server handling: %s %v", info.FullMethod, req)
m, err := handler(ctx, req)
Logf("grpc server handled: %s %v result: %v err: %v", info.FullMethod, req, m, err)
return m, err
}
// GrpcClientLog 打印grpc服务端的日志
func GrpcClientLog(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
Logf("grpc client calling: %s%s %v", cc.Target(), method, req)
err := invoker(ctx, method, req, reply, cc, opts...)
Logf("grpc client called: %s%s %v result: %v err: %v", cc.Target(), method, req, reply, err)
return err
}

View File

@ -1,6 +1,7 @@
package dtmpb
import (
context "context"
"strings"
"github.com/yedf/dtm/dtmcli"
@ -12,7 +13,7 @@ var clients = map[string]*grpc.ClientConn{}
// GetGrpcConn 1
func GetGrpcConn(grpcServer string) (conn *grpc.ClientConn, rerr error) {
if clients[grpcServer] == nil {
conn, err := grpc.Dial(grpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithUnaryInterceptor(dtmcli.GrpcClientLog))
conn, err := grpc.Dial(grpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithUnaryInterceptor(GrpcClientLog))
if err == nil {
clients[grpcServer] = conn
dtmcli.Logf("dtm client inited for %s", grpcServer)
@ -41,3 +42,21 @@ func GetServerAndMethod(grpcURL string) (string, string) {
method := "/" + strings.Join(fs[1:], "/")
return server, method
}
// GrpcServerLog 打印grpc服务端的日志
func GrpcServerLog(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
dtmcli.Logf("grpc server handling: %s %v", info.FullMethod, req)
m, err := handler(ctx, req)
log := dtmcli.If(err != nil, dtmcli.LogRedf, dtmcli.Logf).(dtmcli.LogFunc)
log("grpc server handled: %s %v result: %v err: %v", info.FullMethod, req, m, err)
return m, err
}
// GrpcClientLog 打印grpc服务端的日志
func GrpcClientLog(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
dtmcli.Logf("grpc client calling: %s%s %v", cc.Target(), method, req)
err := invoker(ctx, method, req, reply, cc, opts...)
log := dtmcli.If(err != nil, dtmcli.LogRedf, dtmcli.Logf).(dtmcli.LogFunc)
log("grpc client called: %s%s %v result: %v err: %v", cc.Target(), method, req, reply, err)
return err
}

View File

@ -26,7 +26,7 @@ func StartSvr() {
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", dtmsvrGrpcPort))
dtmcli.FatalIfError(err)
s := grpc.NewServer(grpc.UnaryInterceptor(dtmcli.GrpcServerLog))
s := grpc.NewServer(grpc.UnaryInterceptor(dtmpb.GrpcServerLog))
dtmpb.RegisterDtmServer(s, &dtmServer{})
dtmcli.Logf("grpc listening at %v", lis.Addr())
go func() {

View File

@ -38,14 +38,14 @@ func BaseAppStartup() *gin.Engine {
dtmcli.Logf("Starting busi at: %d", BusiPort)
go app.Run(fmt.Sprintf(":%d", BusiPort))
conn, err := grpc.Dial(DtmGrpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithUnaryInterceptor(dtmcli.GrpcClientLog))
conn, err := grpc.Dial(DtmGrpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithUnaryInterceptor(dtmpb.GrpcClientLog))
dtmcli.FatalIfError(err)
DtmClient = dtmpb.NewDtmClient(conn)
dtmcli.Logf("dtm client inited")
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", BusiPbPort))
dtmcli.FatalIfError(err)
s := grpc.NewServer(grpc.UnaryInterceptor(dtmcli.GrpcServerLog))
s := grpc.NewServer(grpc.UnaryInterceptor(dtmpb.GrpcServerLog))
RegisterBusiServer(s, &busiServer{})
dtmcli.Logf("busi grpc listening at %v", lis.Addr())
go func() {