diff options
| author | Colin Wilk <colin@wilk.cx> | 2026-10-30 10:19:01 +0100 |
|---|---|---|
| committer | Colin Wilk <colin@wilk.cx> | 2026-10-30 10:19:01 +0100 |
| commit | 57c86f20f2112ce54f05d1de55c4afa16d28a9ab (patch) | |
| tree | 6b8e20ad72faa253292069cbf5d5d0f3b6651610 /main.go | |
| parent | b03b00869391cd70ef1e40561f72dffbd2f47b29 (diff) | |
| download | cr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.tar.gz cr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.zip | |
Add logging with httplog
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 31 |
1 files changed, 27 insertions, 4 deletions
@@ -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) + } } |