|
1 | 1 | package main |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "encoding/json" // Import to safely escape error strings |
| 5 | + "fmt" // Import to format strings |
4 | 6 | "log" |
5 | 7 | "net/http" |
6 | 8 | "runtime/coverage" |
7 | 9 | ) |
8 | 10 |
|
9 | 11 | func startCoverageServer() { |
10 | | - log.Println("Coverage build detected. Starting private admin server on localhost:8081...") |
11 | 12 | adminMux := http.NewServeMux() |
12 | 13 |
|
13 | 14 | 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 | + |
15 | 18 | w.Header().Set("Content-Type", "application/octet-stream") |
16 | 19 | w.Header().Set("Content-Disposition", `attachment; filename="coverage.out"`) |
17 | 20 |
|
18 | 21 | 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 | + ) |
20 | 29 | } |
21 | 30 | }) |
22 | 31 |
|
23 | 32 | 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 | + |
25 | 35 | w.Header().Set("Content-Type", "application/octet-stream") |
26 | 36 | w.Header().Set("Content-Disposition", `attachment; filename="coverage.meta"`) |
27 | 37 |
|
28 | 38 | 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 | + ) |
30 | 43 | } |
31 | 44 | }) |
32 | 45 |
|
33 | 46 | go func() { |
| 47 | + log.Println(`{"level":"info","message":"Starting private admin server","address":"localhost:8089"}`) |
34 | 48 | 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 | + ) |
36 | 53 | } |
37 | 54 | }() |
38 | 55 | } |
0 commit comments