From a6b88139afc7c994ddb604757304d44214c00a90 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 15 Feb 2026 11:20:24 +0900 Subject: refactor(log): migrate from log to log/slog for structured logging Replace all usages of the standard log package with log/slog across backend and swift worker. Configure Echo's request logger to emit structured log attributes via slog instead of the default format. Co-Authored-By: Claude Opus 4.6 --- worker/swift/main.go | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'worker') diff --git a/worker/swift/main.go b/worker/swift/main.go index d3d14db..2761602 100644 --- a/worker/swift/main.go +++ b/worker/swift/main.go @@ -1,8 +1,10 @@ package main import ( - "log" + "context" + "log/slog" "net/http" + "os" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" @@ -10,17 +12,39 @@ import ( func main() { if err := prepareDirectories(); err != nil { - log.Fatal(err) + slog.Error("failed to prepare directories", "error", err) + os.Exit(1) } e := echo.New() - e.Use(middleware.RequestLogger()) + e.Use(middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{ + LogStatus: true, + LogURI: true, + LogMethod: true, + LogLatency: true, + LogError: true, + HandleError: true, + LogValuesFunc: func(_ echo.Context, v middleware.RequestLoggerValues) error { + attrs := []slog.Attr{ + slog.String("method", v.Method), + slog.String("uri", v.URI), + slog.Int("status", v.Status), + slog.Duration("latency", v.Latency), + } + if v.Error != nil { + attrs = append(attrs, slog.String("error", v.Error.Error())) + } + slog.LogAttrs(context.Background(), slog.LevelInfo, "request", attrs...) + return nil + }, + })) e.Use(middleware.Recover()) e.POST("/exec", handleExec) if err := e.Start(":80"); err != http.ErrServerClosed { - log.Fatal(err) + slog.Error("failed to start server", "error", err) + os.Exit(1) } } -- cgit v1.3.1