diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-15 11:20:24 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-15 11:20:24 +0900 |
| commit | a6b88139afc7c994ddb604757304d44214c00a90 (patch) | |
| tree | bf24da786c5fb292991fd1ad893522601ce98aa4 /worker | |
| parent | 96fad1a4e78c7209e5a0f3496e8b59d591fbe500 (diff) | |
| download | phperkaigi-2026-albatross-a6b88139afc7c994ddb604757304d44214c00a90.tar.gz phperkaigi-2026-albatross-a6b88139afc7c994ddb604757304d44214c00a90.tar.zst phperkaigi-2026-albatross-a6b88139afc7c994ddb604757304d44214c00a90.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'worker')
| -rw-r--r-- | worker/swift/main.go | 32 |
1 files changed, 28 insertions, 4 deletions
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) } } |
