diff --git a/relp_handler.go b/relp_handler.go index 914b5c0..6e7957a 100644 --- a/relp_handler.go +++ b/relp_handler.go @@ -117,7 +117,16 @@ func (r *RELPHandler) Startup() error { } func (r *RELPHandler) Handle(ctx context.Context, record slog.Record) error { - event := NewEvent(record.Level.String(), record.Message, record.Attrs) + attrs := make(map[string]interface{}) + record.Attrs(func(attr slog.Attr) bool { + attrs[attr.Key] = attr.Value + return true + }) + jsonData, err := json.Marshal(attrs) + if err != nil { + return fmt.Errorf("error marshaling attributes: %v", err) + } + event := NewEvent(record.Level.String(), record.Message, jsonData) select { case r.ch <- event: return nil // Successfully sent event to channel