优化结构

This commit is contained in:
Yvan
2026-08-24 21:50:33 +08:00
parent d3c20c578f
commit 969afee284
20 changed files with 497 additions and 244 deletions
+22 -17
View File
@@ -142,17 +142,28 @@ func AccessLog(runtime *config.Store, logger *slog.Logger, version string) gin.H
"req_query", redactQuery(c.Request.URL.RawQuery),
}
}
if !paymentCallback && admin != nil && admin.Zap != nil && admin.Zap.AccessReqHeaders {
attributes = append(attributes, "req_headers", redactHeaders(c.Request.Header))
}
if !paymentCallback && admin != nil && admin.Zap != nil && admin.Zap.AccessReqBody {
attributes = append(attributes, "req_body", requestText)
}
if !paymentCallback && admin != nil && admin.Zap != nil && admin.Zap.AccessRespData {
attributes = append(attributes, "resp_data", responseText)
}
if !paymentCallback && privateErrors != "" {
attributes = append(attributes, "error_msg", privateErrors)
// A payment callback is logged through its own attribute set: neither the
// configurable request/response capture nor the private error text may leak
// provider payloads into the generic access log.
if !paymentCallback {
var zap *config.Zap
if admin != nil {
zap = admin.Zap
}
if zap != nil {
if zap.AccessReqHeaders {
attributes = append(attributes, "req_headers", redactHeaders(c.Request.Header))
}
if zap.AccessReqBody {
attributes = append(attributes, "req_body", requestText)
}
if zap.AccessRespData {
attributes = append(attributes, "resp_data", responseText)
}
}
if privateErrors != "" {
attributes = append(attributes, "error_msg", privateErrors)
}
}
logger.InfoContext(c.Request.Context(), "请求完成", attributes...)
}
@@ -173,12 +184,6 @@ func paymentCallbackProvider(path string) string {
return "unknown"
}
// isPaymentIntegrationConfigWrite is kept as a compatibility seam for
// middleware tests; policy ownership lives in routecatalog.
func isPaymentIntegrationConfigWrite(method, path string) bool {
return routecatalog.BodyPolicyFor(method, path) == routecatalog.BodyPolicyPaymentConfig
}
func paymentCallbackSummary(body []byte, contentType string) string {
mediaType, _, err := mime.ParseMediaType(contentType)
if err != nil || mediaType == "" {