Skip to content

Commit 7feabcf

Browse files
committed
clean: simplify
1 parent f72b091 commit 7feabcf

File tree

1 file changed

+9
-60
lines changed

1 file changed

+9
-60
lines changed

middleware.go

Lines changed: 9 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,14 @@ import (
1919
func RequestLogging(config *Config) func(http.Handler) http.Handler {
2020
return func(next http.Handler) http.Handler {
2121
fn := func(w http.ResponseWriter, r *http.Request) {
22-
before := time.Now()
23-
24-
traceId := getTraceId(r)
25-
if traceId == "" {
26-
// there is no span yet, so create one
27-
var ctx context.Context
28-
traceId, ctx = generateTraceId(r)
29-
r = r.WithContext(ctx)
30-
}
31-
32-
traces := fmt.Sprintf("projects/%s/traces/%s", config.ProjectId, traceId)
33-
34-
contextLogger := &ContextLogger{
35-
out: config.ContextLogOut,
36-
Trace: traces,
37-
Severity: config.Severity,
38-
AdditionalData: config.AdditionalData,
39-
loggedSeverity: make([]Severity, 0, 10),
40-
Skip: config.Skip,
41-
}
42-
ctx := context.WithValue(r.Context(), contextLoggerKey, contextLogger)
43-
r = r.WithContext(ctx)
22+
reserve := NewReserve(config, r)
4423

4524
wrw := &wrappedResponseWriter{ResponseWriter: w}
4625
defer func() {
4726
// logging
48-
elapsed := time.Since(before)
49-
maxSeverity := contextLogger.maxSeverity()
50-
err := writeRequestLog(r, config, wrw.status, wrw.responseSize, elapsed, traces, maxSeverity)
51-
if err != nil {
52-
_, _ = fmt.Fprintln(os.Stderr, err.Error())
53-
}
27+
reserve.LastHandling(wrw)
5428
}()
29+
5530
next.ServeHTTP(wrw, r)
5631
}
5732
return http.HandlerFunc(fn)
@@ -62,44 +37,18 @@ func RequestLogging(config *Config) func(http.Handler) http.Handler {
6237
func RequestLoggingWithEcho(config *Config) echo.MiddlewareFunc {
6338
return func(next echo.HandlerFunc) echo.HandlerFunc {
6439
fn := func(c echo.Context) error {
65-
before := time.Now()
66-
r := c.Request()
67-
traceId := getTraceId(r)
68-
if traceId == "" {
69-
// there is no span yet, so create one
70-
var ctx context.Context
71-
traceId, ctx = generateTraceId(r)
72-
r = r.WithContext(ctx)
73-
}
40+
reserve := NewReserve(config, c.Request())
7441

75-
traces := fmt.Sprintf("projects/%s/traces/%s", config.ProjectId, traceId)
76-
77-
contextLogger := &ContextLogger{
78-
out: config.ContextLogOut,
79-
Trace: traces,
80-
Severity: config.Severity,
81-
AdditionalData: config.AdditionalData,
82-
loggedSeverity: make([]Severity, 0, 10),
83-
Skip: config.Skip,
42+
wrw := &wrappedResponseWriter{
43+
ResponseWriter: c.Response().Writer,
8444
}
85-
ctx := context.WithValue(r.Context(), contextLoggerKey, contextLogger)
86-
87-
r = r.WithContext(ctx)
88-
c.SetRequest(r)
89-
90-
w := c.Response().Writer
91-
wrw := &wrappedResponseWriter{ResponseWriter: w}
45+
wr := echo.NewResponse(wrw, c.Echo())
9246
defer func() {
9347
// logging
94-
elapsed := time.Since(before)
95-
maxSeverity := contextLogger.maxSeverity()
96-
err := writeRequestLog(r, config, wrw.status, wrw.responseSize, elapsed, traces, maxSeverity)
97-
if err != nil {
98-
_, _ = fmt.Fprintln(os.Stderr, err.Error())
99-
}
48+
reserve.LastHandling(wrw)
10049
}()
10150

102-
wr := echo.NewResponse(wrw, c.Echo())
51+
c.SetRequest(reserve.request)
10352
c.SetResponse(wr)
10453

10554
return next(c)

0 commit comments

Comments
 (0)