summaryrefslogtreecommitdiffstats
path: root/web
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 /web
parentb03b00869391cd70ef1e40561f72dffbd2f47b29 (diff)
downloadcr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.tar.gz
cr-web-57c86f20f2112ce54f05d1de55c4afa16d28a9ab.zip
Add logging with httplog
Diffstat (limited to 'web')
-rw-r--r--web/server.go20
1 files changed, 12 insertions, 8 deletions
diff --git a/web/server.go b/web/server.go
index 121b197..59b5c2b 100644
--- a/web/server.go
+++ b/web/server.go
@@ -5,11 +5,12 @@ import (
"context"
"errors"
"html/template"
- "log"
+ "log/slog"
"net/http"
"strings"
"git.wilk.cx/cr-browser/registry"
+ "github.com/go-chi/httplog/v3"
)
type RepositoryLister interface {
@@ -64,7 +65,10 @@ func (s *Server) Handler() http.Handler {
mux.HandleFunc("/", s.repositories)
mux.HandleFunc("/r/{name...}", s.repository)
- return mux
+ return httplog.RequestLogger(slog.Default(), &httplog.Options{
+ Level: slog.LevelInfo,
+ Schema: httplog.SchemaECS.Concise(true),
+ })(mux)
}
func (s *Server) repositories(w http.ResponseWriter, r *http.Request) {
@@ -81,7 +85,7 @@ func (s *Server) repositories(w http.ResponseWriter, r *http.Request) {
repos, err := s.provider.Repositories(r.Context())
if err != nil {
- log.Printf("fetch repositories: %v", err)
+ slog.Error("fetch repositories", "error", err)
http.Error(w, "failed to fetch repositories", http.StatusBadGateway)
return
}
@@ -94,7 +98,7 @@ func (s *Server) repositories(w http.ResponseWriter, r *http.Request) {
var buf bytes.Buffer
if err := s.tmpl.ExecuteTemplate(&buf, "repositories", data); err != nil {
- log.Printf("render repositories: %v", err)
+ slog.Error("render repositories", "error", err)
http.Error(w, "failed to render page", http.StatusInternalServerError)
return
}
@@ -127,7 +131,7 @@ func (s *Server) repository(w http.ResponseWriter, r *http.Request) {
return
}
- log.Printf("fetch repository: %v", err)
+ slog.Error("fetch repository", "error", err)
http.Error(w, "failed to fetch repository", http.StatusBadGateway)
return
}
@@ -140,7 +144,7 @@ func (s *Server) repository(w http.ResponseWriter, r *http.Request) {
var buf bytes.Buffer
if err := s.tmpl.ExecuteTemplate(&buf, "repository", data); err != nil {
- log.Printf("render repository: %v", err)
+ slog.Error("render repository", "error", err)
http.Error(w, "failed to render page", http.StatusInternalServerError)
return
}
@@ -156,7 +160,7 @@ func (s *Server) manifest(w http.ResponseWriter, r *http.Request, repository, di
http.NotFound(w, r)
return
}
- log.Printf("fetch manifest: %v", err)
+ slog.Error("fetch manifest", "error", err)
http.Error(w, "failed to fetch manifest", http.StatusBadGateway)
return
}
@@ -171,7 +175,7 @@ func (s *Server) manifest(w http.ResponseWriter, r *http.Request, repository, di
var buf bytes.Buffer
if err := s.tmpl.ExecuteTemplate(&buf, "manifest", data); err != nil {
- log.Printf("render manifest: %v", err)
+ slog.Error("render manifest", "error", err)
http.Error(w, "failed to render page", http.StatusInternalServerError)
return
}