bindbox-game/internal/proposal/request_logger.go
2025-10-16 13:28:24 +08:00

29 lines
972 B
Go

package proposal
import (
"encoding/json"
)
// RequestLoggerMessage 日志消息
type RequestLoggerMessage struct {
Tid string `json:"tid"` // 请求链路 ID
Username string `json:"username"` // 用户名
HOST string `json:"host"` // 请求 HOST
Path string `json:"path"` // 请求 Path
Method string `json:"method"` // 请求 Method
HTTPCode int `json:"http_code"` // HTTP 状态码
BusinessCode int `json:"business_code"` // 业务码
CostSeconds float64 `json:"cost_seconds"` // 耗时,单位:秒
IsSuccess bool `json:"is_success"` // 状态,是否成功
Content string `json:"content"` // 内容
}
// Marshal 序列化到JSON
func (m *RequestLoggerMessage) Marshal() (jsonRaw []byte) {
jsonRaw, _ = json.Marshal(m)
return
}
// RequestLoggerHandler 日志记录句柄
type RequestLoggerHandler func(msg *RequestLoggerMessage)