Documentation
¶
Overview ¶
Package oplog 提供异步操作日志队列: 请求/业务动作日志先入内存队列,由后台消费者批量写入 Sink, 不阻塞请求链路(go-admin 内存队列思路)。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Entry ¶
type Entry struct {
Time time.Time `json:"time"`
UserID int64 `json:"user_id"`
UserEmail string `json:"user_email"`
Method string `json:"method"`
Path string `json:"path"`
Status int `json:"status"`
Duration time.Duration `json:"duration"`
RequestID string `json:"request_id"`
Action string `json:"action"`
Detail string `json:"detail"`
}
Entry 是单条操作日志。
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue 是异步操作日志队列。 Enqueue 非阻塞:队列满时丢弃新条目并计数,保证请求链路不被日志拖慢。
func (*Queue) Middleware ¶
Middleware 返回 Iris 操作日志中间件,把请求信息入队。 注册顺序建议在 Auth 之后(可读取用户身份)。
type RedisListSink ¶ added in v1.68.0
type RedisListSink struct {
// contains filtered or unexported fields
}
RedisListSink 把审计日志写入 Redis List(LPUSH 头部插入,倒序保留最近 limit 条)。 多实例共享存储,零配置审计落地;配合 Query 提供最近操作日志查询。 大数据量/复杂检索场景请改用 ES 或数据库 Sink。
func NewRedisListSink ¶ added in v1.68.0
func NewRedisListSink(client *redis.Client, key string, limit int64) *RedisListSink
NewRedisListSink 创建 Redis 审计存储。 key 为存储键(多应用隔离用不同 key);limit 为保留条数(<=0 表示不限制,注意内存占用)。
Click to show internal directories.
Click to hide internal directories.