Skip to content

Commit 18d7114

Browse files
committed
Add request log
Signed-off-by: Viet-Anh Duong <vietanhs0817@gmail.com>
1 parent 44d4a26 commit 18d7114

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

hander.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@ package main
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"html/template"
7+
"io/ioutil"
68
"log"
79
"net/http"
810
"strconv"
11+
"strings"
912
)
1013

1114
type Response struct {
1215
ErrorCode int `json:"error_code"`
1316
RequestId string `json:"request_id"`
1417
OriginalURI string `json:"original_uri"`
15-
RayId string `json:"ray_id"`
16-
ClientIp string `json:"client_ip"`
18+
RayId string `json:"ray_id"`
19+
ClientIp string `json:"client_ip"`
1720
Message string `json:"message"`
1821
}
1922

@@ -27,12 +30,14 @@ var ErrorMap = map[int]string{
2730

2831
func errorHandler(t *template.Template) func(http.ResponseWriter, *http.Request) {
2932
return func(w http.ResponseWriter, r *http.Request) {
33+
log.Println("Header:", formatHeader(r.Header))
34+
log.Printf("Body: %s\n", formatBody(r))
35+
3036
w.Header().Set(FormatHeader, r.Header.Get(FormatHeader))
3137
w.Header().Set(CodeHeader, r.Header.Get(CodeHeader))
3238
w.Header().Set(ContentType, r.Header.Get(ContentType))
3339
w.Header().Set(OriginalURI, r.Header.Get(OriginalURI))
3440
w.Header().Set(RequestId, r.Header.Get(RequestId))
35-
3641
format := r.Header.Get(FormatHeader)
3742
if format != "application/json" {
3843
format = DefaultFormat
@@ -57,7 +62,7 @@ func errorHandler(t *template.Template) func(http.ResponseWriter, *http.Request)
5762
RequestId: r.Header.Get(RequestId),
5863
OriginalURI: r.Header.Get(OriginalURI),
5964
ClientIp: r.Header.Get(ClientIp),
60-
RayId: r.Header.Get(RayId),
65+
RayId: r.Header.Get(RayId),
6166
Message: message,
6267
}
6368

@@ -78,3 +83,20 @@ func errorHandler(t *template.Template) func(http.ResponseWriter, *http.Request)
7883
}
7984
}
8085
}
86+
87+
func formatHeader(header http.Header) string {
88+
var pairs []string
89+
for key, value := range header {
90+
pairs = append(pairs, fmt.Sprintf("%s=%s", key, value))
91+
}
92+
return strings.Join(pairs, "; ")
93+
}
94+
95+
func formatBody(r *http.Request) string {
96+
b, err := ioutil.ReadAll(r.Body)
97+
if err != nil {
98+
log.Printf("Read body request failed with err: %v\n", err)
99+
return ""
100+
}
101+
return string(b)
102+
}

0 commit comments

Comments
 (0)