From 57c86f20f2112ce54f05d1de55c4afa16d28a9ab Mon Sep 17 00:00:00 2001 From: Colin Wilk Date: Fri, 30 Oct 2026 10:19:01 +0100 Subject: Add logging with httplog --- main.go | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 2f27aee..f658c71 100644 --- a/main.go +++ b/main.go @@ -2,7 +2,8 @@ package main import ( "flag" - "log" + "fmt" + "log/slog" "net/http" "os" "strings" @@ -14,8 +15,26 @@ import ( func main() { httpAddr := flag.String("http", ":8080", "HTTP listen address") + defaultVerbosity := os.Getenv("VERBOSITY") + verbosity := flag.String("verbosity", defaultVerbosity, "Log verbosity: ERR, WARN, INFO (env VERBOSITY)") flag.Parse() + var level slog.Level + switch strings.ToUpper(strings.TrimSpace(*verbosity)) { + case "ERROR": + level = slog.LevelError + case "WARN": + level = slog.LevelWarn + case "INFO": + level = slog.LevelInfo + case "": + level = slog.LevelInfo + default: + fmt.Fprintf(os.Stderr, "invalid verbosity %q: expected ERROR, WARN, or INFO\n", *verbosity) + os.Exit(2) + } + slog.SetDefault(slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: level}))) + registryURL := os.Getenv("REGISTRY_URL") if registryURL == "" { registryURL = "http://localhost:5000" @@ -35,7 +54,8 @@ func main() { server, err := web.NewServer(provider, registryHost) if err != nil { - log.Fatal(err) + slog.Error("initialize server", "error", err) + os.Exit(1) } httpServer := &http.Server{ @@ -44,6 +64,9 @@ func main() { ReadHeaderTimeout: 5 * time.Second, } - log.Printf("Listening on %s", *httpAddr) - log.Fatal(httpServer.ListenAndServe()) + slog.Info("listening", "address", *httpAddr) + if err := httpServer.ListenAndServe(); err != nil { + slog.Error("HTTP server stopped", "error", err) + os.Exit(1) + } } -- cgit v1.2.3