/
ctx.go
40 lines (35 loc) · 877 Bytes
/
ctx.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package logrusfmt
import (
"context"
)
type contextKey string
var (
CtxKeyIP = contextKey("ip")
CtxKeyUserID = contextKey("user_id")
CtxKeyUniqueCookieID = contextKey("unique_cookie_id")
CtxKeyMethod = contextKey("method")
CtxKeyStatus = contextKey("status")
CtxKeyURI = contextKey("uri")
CtxKeyUserAgent = contextKey("user_agent")
CtxKeyLatency = contextKey("latency")
CtxKeyRequestID = contextKey("request_id")
AllCtxKey = []contextKey{
CtxKeyIP,
CtxKeyUserID,
CtxKeyUniqueCookieID,
CtxKeyMethod,
CtxKeyStatus,
CtxKeyURI,
CtxKeyUserAgent,
CtxKeyLatency,
CtxKeyRequestID,
}
)
func setRequestContext(ctx context.Context, data map[string]interface{}) {
for _, ctxKey := range AllCtxKey {
value := ctx.Value(ctxKey)
if value != nil {
data[string(ctxKey)] = value
}
}
}