diff --git a/cmd/joj3/log.go b/cmd/joj3/log.go index b4bb702..aaad675 100644 --- a/cmd/joj3/log.go +++ b/cmd/joj3/log.go @@ -2,8 +2,10 @@ package main import ( "context" + "fmt" "log/slog" "os" + "time" ) var runningTest bool @@ -12,6 +14,12 @@ type multiHandler struct { handlers []slog.Handler } +var runID string + +func init() { + runID = fmt.Sprintf("%d-%d", time.Now().UnixNano(), os.Getpid()) +} + func (h *multiHandler) Enabled(ctx context.Context, level slog.Level) bool { for _, handler := range h.handlers { if handler.Enabled(ctx, level) { @@ -69,7 +77,7 @@ func setupSlog(logPath string) error { // Stderr handler for info logs and above stderrHandler := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{ Level: stderrLogLevel, - }) + }).WithAttrs([]slog.Attr{slog.String("runID", runID)}) handlers = append(handlers, stderrHandler) // Create a multi-handler multiHandler := &multiHandler{handlers: handlers}