mirror of
https://github.com/go-kratos/kratos.git
synced 2026-05-22 10:15:24 +02:00
c551448bbd
* mw/metrics add tag
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package logging
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/go-kratos/kratos/v2/errors"
|
|
"github.com/go-kratos/kratos/v2/internal/httputil"
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"github.com/go-kratos/kratos/v2/transport/grpc"
|
|
)
|
|
|
|
// grpcServerLog is a server handler when transport is KindGRPC
|
|
func grpcServerLog(logger log.Logger, ctx context.Context, args string, err error) {
|
|
info, ok := grpc.FromServerContext(ctx)
|
|
if !ok {
|
|
return
|
|
}
|
|
|
|
level := log.LevelInfo
|
|
if err != nil {
|
|
level = log.LevelError
|
|
}
|
|
|
|
log.WithContext(ctx, logger).Log(level,
|
|
"kind", "server",
|
|
"component", "grpc",
|
|
"grpc.target", info.FullMethod,
|
|
"grpc.args", args,
|
|
"grpc.code", httputil.GRPCCodeFromStatus(errors.Code(err)),
|
|
"grpc.error", extractError(err),
|
|
)
|
|
}
|
|
|
|
// grpcClientLog is a client handler when transport is KindGRPC
|
|
func grpcClientLog(logger log.Logger, ctx context.Context, args string, err error) {
|
|
info, ok := grpc.FromClientContext(ctx)
|
|
if !ok {
|
|
return
|
|
}
|
|
level := log.LevelInfo
|
|
if err != nil {
|
|
level = log.LevelError
|
|
}
|
|
log.WithContext(ctx, logger).Log(level,
|
|
"kind", "client",
|
|
"component", "grpc",
|
|
"grpc.target", info.FullMethod,
|
|
"grpc.args", args,
|
|
"grpc.code", httputil.GRPCCodeFromStatus(errors.Code(err)),
|
|
"grpc.error", extractError(err),
|
|
)
|
|
}
|