package observability import ( "log/slog" "os" ) // Configure installs the process-wide JSON logger used by every GL adapter. func Configure(service string, level slog.Leveler) *slog.Logger { handler := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{ AddSource: true, Level: level, ReplaceAttr: func(_ []string, attr slog.Attr) slog.Attr { switch attr.Key { case slog.TimeKey: attr.Key = "timestamp" case slog.LevelKey: attr.Key = "severity" case slog.MessageKey: attr.Key = "message" case slog.SourceKey: attr.Key = "source" } return attr }, }) logger := slog.New(handler).With("service", service) slog.SetDefault(logger) return logger }