diff options
Diffstat (limited to 'backend/router.go')
| -rw-r--r-- | backend/router.go | 20 |
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 |
