summaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
authorColin Wilk <colin@wilk.cx>2026-10-30 10:19:01 +0100
committerColin Wilk <colin@wilk.cx>2026-10-30 10:19:01 +0100
commit57c86f20f2112ce54f05d1de55c4afa16d28a9ab (patch)
tree6b8e20ad72faa253292069cbf5d5d0f3b6651610 /main.go
parentb03b00869391cd70ef1e40561f72dffbd2f47b29 (diff)
downloadcr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.tar.gz
cr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.zip
Add logging with httplog
Diffstat (limited to 'main.go')
-rw-r--r--main.go31
1 files changed, 27 insertions, 4 deletions
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)
+ }
}