diff --git a/internal/msggateway/context.go b/internal/msggateway/context.go index 781a321ef..5006a01fd 100644 --- a/internal/msggateway/context.go +++ b/internal/msggateway/context.go @@ -32,17 +32,18 @@ func (c *UserConnContext) Err() error { func (c *UserConnContext) Value(key any) any { switch key { case constant.OpUserID: - c.GetUserID() + return c.GetUserID() case constant.OperationID: - c.GetOperationID() + return c.GetOperationID() case constant.ConnID: - c.GetConnID() + return c.GetConnID() case constant.OpUserPlatform: - constant.PlatformIDToName(utils.StringToInt(c.GetPlatformID())) + return constant.PlatformIDToName(utils.StringToInt(c.GetPlatformID())) + case constant.RemoteAddr: + return c.RemoteAddr default: return "" } - return "" } func newContext(respWriter http.ResponseWriter, req *http.Request) *UserConnContext { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 563e9b670..ea312c73a 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -278,6 +278,7 @@ const Token = "token" const RpcCustomHeader = "customHeader" // rpc中间件自定义ctx参数 const CheckKey = "CheckKey" const TriggerID = "triggerID" +const RemoteAddr = "remoteAddr" const ( UnreliableNotification = 1 diff --git a/pkg/common/log/zap.go b/pkg/common/log/zap.go index 8fd8c5c21..0954161c9 100644 --- a/pkg/common/log/zap.go +++ b/pkg/common/log/zap.go @@ -148,6 +148,8 @@ func (l *ZapLogger) kvAppend(ctx context.Context, keysAndValues []interface{}) [ opUserID := mcontext.GetOpUserID(ctx) connID := mcontext.GetConnID(ctx) triggerID := mcontext.GetTriggerID(ctx) + opUserPlatform := mcontext.GetOpUserPlatform(ctx) + remoteAddr := mcontext.GetRemoteAddr(ctx) if opUserID != "" { keysAndValues = append([]interface{}{constant.OpUserID, opUserID}, keysAndValues...) } @@ -160,6 +162,12 @@ func (l *ZapLogger) kvAppend(ctx context.Context, keysAndValues []interface{}) [ if triggerID != "" { keysAndValues = append([]interface{}{constant.TriggerID, triggerID}, keysAndValues...) } + if opUserPlatform != "" { + keysAndValues = append([]interface{}{constant.OpUserPlatform, opUserPlatform}, keysAndValues...) + } + if remoteAddr != "" { + keysAndValues = append([]interface{}{constant.RemoteAddr, remoteAddr}, keysAndValues...) + } return keysAndValues } diff --git a/pkg/common/mcontext/ctx.go b/pkg/common/mcontext/ctx.go index fe4344616..448521ad5 100644 --- a/pkg/common/mcontext/ctx.go +++ b/pkg/common/mcontext/ctx.go @@ -81,6 +81,15 @@ func GetOpUserPlatform(ctx context.Context) string { } return "" } +func GetRemoteAddr(ctx context.Context) string { + if ctx.Value(constant.RemoteAddr) != "" { + s, ok := ctx.Value(constant.RemoteAddr).(string) + if ok { + return s + } + } + return "" +} func GetMustCtxInfo(ctx context.Context) (operationID, opUserID, platform, connID string, err error) { operationID, ok := ctx.Value(constant.OperationID).(string)