Skip to content

Commit 3aab749

Browse files
chore: add debug logs
1 parent 4cb0b1e commit 3aab749

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

services/number/main.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,31 @@ import (
55
"log/slog"
66
"math/rand/v2"
77
"net/http"
8+
"os"
89
)
910

11+
func init() {
12+
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
13+
AddSource: true,
14+
Level: slog.LevelDebug,
15+
}))
16+
slog.SetDefault(logger)
17+
}
18+
1019
func main() {
1120
// add routes
12-
http.HandleFunc("GET /number", getNumber)
21+
http.HandleFunc("GET /number", logMiddleware(getNumber))
1322
slog.Info("starting server on port 8081")
1423
http.ListenAndServe(":8081", nil)
1524
}
1625

26+
func logMiddleware(next http.HandlerFunc) http.HandlerFunc {
27+
return func(w http.ResponseWriter, r *http.Request) {
28+
slog.DebugContext(r.Context(), "incoming request", "method", r.Method, "url", r.URL.Path, "remote", r.RemoteAddr)
29+
next(w, r)
30+
}
31+
}
32+
1733
func getNumber(w http.ResponseWriter, r *http.Request) {
1834
json.NewEncoder(w).Encode(map[string]uint64{"number": rand.Uint64()})
1935
}

services/view/main.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,17 @@ var (
1212
envNumberServiceURL = os.Getenv("NUMBER_SERVICE_URL")
1313
)
1414

15+
func init() {
16+
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
17+
AddSource: true,
18+
Level: slog.LevelDebug,
19+
}))
20+
slog.SetDefault(logger)
21+
}
22+
1523
func main() {
1624
// add routes
17-
http.HandleFunc("GET /", getMain)
25+
http.HandleFunc("GET /", logMiddleware(getMain))
1826
slog.Info("starting server on port 8080")
1927
http.ListenAndServe(":8080", nil)
2028
}
@@ -37,9 +45,17 @@ var (
3745
websiteTemplate = template.Must(template.New("website").Parse(websiteHTML))
3846
)
3947

48+
func logMiddleware(next http.HandlerFunc) http.HandlerFunc {
49+
return func(w http.ResponseWriter, r *http.Request) {
50+
slog.DebugContext(r.Context(), "incoming request", "method", r.Method, "url", r.URL.Path, "remote", r.RemoteAddr)
51+
next(w, r)
52+
}
53+
}
54+
4055
func getMain(w http.ResponseWriter, r *http.Request) {
4156
rsp, err := http.Get(envNumberServiceURL + "/number")
4257
if err != nil || rsp.StatusCode != http.StatusOK {
58+
slog.DebugContext(r.Context(), "http upstream error: unable to get number from number service", "number_service_url", envNumberServiceURL+"/number", "error", err)
4359
http.Error(w, "http upstream error: could not get number from number service", http.StatusInternalServerError)
4460
return
4561
}
@@ -48,17 +64,20 @@ func getMain(w http.ResponseWriter, r *http.Request) {
4864
payload := map[string]uint64{}
4965
err = json.NewDecoder(rsp.Body).Decode(&payload)
5066
if err != nil {
67+
slog.DebugContext(r.Context(), "http upstream error: could not decode number from number service", "error", err)
5168
http.Error(w, "http upstream error: could not decode number from number service", http.StatusInternalServerError)
5269
return
5370
}
5471

5572
if _, ok := payload["number"]; !ok {
73+
slog.DebugContext(r.Context(), "http upstream error: number key not found in response from number service")
5674
http.Error(w, "http upstream error: number key not found in response from number service", http.StatusInternalServerError)
5775
return
5876
}
5977

6078
err = websiteTemplate.Execute(w, payload)
6179
if err != nil {
80+
slog.DebugContext(r.Context(), "could not render website", "error", err)
6281
http.Error(w, "could not render website", http.StatusInternalServerError)
6382
return
6483
}

0 commit comments

Comments
 (0)