"encoding/json"
"fmt"
"internal/trace"
+ "log"
"net/http"
"os"
"path/filepath"
// httpJsonTrace serves json trace, requested from within templTrace HTML.
func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
+ // This is an AJAX handler, so instead of http.Error we use log.Printf to log errors.
events, err := parseEvents()
if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
+ log.Printf("failed to parse trace: %v", err)
return
}
if goids := r.FormValue("goid"); goids != "" {
goid, err := strconv.ParseUint(goids, 10, 64)
if err != nil {
- http.Error(w, fmt.Sprintf("failed to parse goid parameter '%v': %v", goids, err), http.StatusInternalServerError)
+ log.Printf("failed to parse goid parameter '%v': %v", goids, err)
return
}
analyzeGoroutines(events)
err = json.NewEncoder(w).Encode(generateTrace(params))
if err != nil {
- http.Error(w, fmt.Sprintf("failed to serialize trace: %v", err), http.StatusInternalServerError)
+ log.Printf("failed to serialize trace: %v", err)
return
}
}