Skip to content

Commit 76a7b99

Browse files
author
Mladen Rusev
committed
jsonify logging
1 parent 87f4a1f commit 76a7b99

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

coverage_server.go

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,55 @@
11
package main
22

33
import (
4+
"encoding/json" // Import to safely escape error strings
5+
"fmt" // Import to format strings
46
"log"
57
"net/http"
68
"runtime/coverage"
79
)
810

911
func startCoverageServer() {
10-
log.Println("Coverage build detected. Starting private admin server on localhost:8081...")
1112
adminMux := http.NewServeMux()
1213

1314
adminMux.HandleFunc("/_debug/coverage/download", func(w http.ResponseWriter, r *http.Request) {
14-
log.Println("Received request to download coverage counter data...")
15+
// Simple info log as a JSON string
16+
log.Println(`{"level":"info","message":"Received request to download coverage counter data"}`)
17+
1518
w.Header().Set("Content-Type", "application/octet-stream")
1619
w.Header().Set("Content-Disposition", `attachment; filename="coverage.out"`)
1720

1821
if err := coverage.WriteCounters(w); err != nil {
19-
log.Printf("Error writing coverage counters to response: %v", err)
22+
// Safely marshal the error to escape quotes and special characters
23+
escapedError, _ := json.Marshal(err.Error())
24+
25+
// Construct the final JSON string and log it
26+
log.Println(
27+
fmt.Sprintf(`{"level":"error","message":"Error writing coverage counters to response","error":%s}`, string(escapedError)),
28+
)
2029
}
2130
})
2231

2332
adminMux.HandleFunc("/_debug/coverage/meta/download", func(w http.ResponseWriter, r *http.Request) {
24-
log.Println("Received request to download coverage metadata...")
33+
log.Println(`{"level":"info","message":"Received request to download coverage metadata"}`)
34+
2535
w.Header().Set("Content-Type", "application/octet-stream")
2636
w.Header().Set("Content-Disposition", `attachment; filename="coverage.meta"`)
2737

2838
if err := coverage.WriteMeta(w); err != nil {
29-
log.Printf("Error writing coverage metadata to response: %v", err)
39+
escapedError, _ := json.Marshal(err.Error())
40+
log.Println(
41+
fmt.Sprintf(`{"level":"error","message":"Error writing coverage metadata to response","error":%s}`, string(escapedError)),
42+
)
3043
}
3144
})
3245

3346
go func() {
47+
log.Println(`{"level":"info","message":"Starting private admin server","address":"localhost:8089"}`)
3448
if err := http.ListenAndServe("localhost:8089", adminMux); err != nil {
35-
log.Printf("Admin server failed: %v", err)
49+
escapedError, _ := json.Marshal(err.Error())
50+
log.Println(
51+
fmt.Sprintf(`{"level":"error","message":"Admin server failed","error":%s}`, string(escapedError)),
52+
)
3653
}
3754
}()
3855
}

0 commit comments

Comments
 (0)