package logging import ( "log/slog" "os" ) // Setup initialises the application-wide structured logger. // All output goes to stdout as JSON for easy parsing by Docker / log aggregators. func Setup() { handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ Level: slog.LevelInfo, }) slog.SetDefault(slog.New(handler)) } // TaskLogger returns a logger pre-populated with common task fields. // Usage: logging.TaskLogger(taskUUID, threadID, messageID).Info("message", ...) func TaskLogger(taskUUID, threadID, messageID string) *slog.Logger { return slog.With( "task_uuid", taskUUID, "thread_id", threadID, "message_id", messageID, ) }