package main import ( "io" "log/slog" "net/http" "os" ) // main func main() { // Init logged logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo})) slog.SetDefault(logger) // Check for port override port := os.Getenv("PORT") if port == "" { port = "8080" } slog.Info("Starting server", "port", port) // Start HTTP server mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) if err != nil { slog.Error("Error reading request body", "error", err) body = []byte("") } slog.Info("Req", "remote", r.RemoteAddr, "method", r.Method, "path", r.URL.Path, "query", r.URL.RawQuery, "headers", r.Header, "body", string(body), ) w.WriteHeader(http.StatusOK) }) http.ListenAndServe(":"+port, mux) }