aboutsummaryrefslogtreecommitdiff
path: root/backend/router.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-02 21:30:34 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-02 21:30:34 +0200
commit5dfd71bfe1c0e25da413f00256a302b13c88d26d (patch)
treeccf3adc4ac0a6caea36ff58f50fa929862a5bc08 /backend/router.go
parent1e915322be3c370a682687614442c7853287b962 (diff)
perf(backend): generate content during load
Diffstat (limited to 'backend/router.go')
-rw-r--r--backend/router.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/backend/router.go b/backend/router.go
index 374e28b..33c685d 100644
--- a/backend/router.go
+++ b/backend/router.go
@@ -20,28 +20,38 @@ const Version = "0.1.0"
//go:embed templates
var templates embed.FS
-func NewRouter(debug bool, cfg *Config) *chi.Mux {
+func SetupLogger(debug bool) {
logFormat := httplog.SchemaECS.Concise(!debug)
+ logLevel := slog.LevelWarn
+ if debug {
+ logLevel = slog.LevelDebug
+ }
+
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
ReplaceAttr: logFormat.ReplaceAttr,
+ Level: logLevel,
})).With(
slog.String("app", "anhgelus/small-web"),
slog.String("version", Version),
)
+ slog.SetDefault(logger)
+}
+
+func NewRouter(debug bool, cfg *Config) *chi.Mux {
+ r := chi.NewRouter()
+
logLevel := slog.LevelWarn
if debug {
logLevel = slog.LevelDebug
}
- r := chi.NewRouter()
-
r.Use(middleware.Timeout(30 * time.Second))
- r.Use(httplog.RequestLogger(logger, &httplog.Options{
+ r.Use(httplog.RequestLogger(slog.Default(), &httplog.Options{
Level: logLevel,
// Set log output to Elastic Common Schema (ECS) format.
- Schema: logFormat,
+ Schema: httplog.SchemaECS.Concise(!debug),
RecoverPanics: true,
Skip: func(req *http.Request, respStatus int) bool {
return respStatus == http.StatusNotFound || respStatus == http.StatusMethodNotAllowed