Add slog attributes at pool, worker, and connection levels.

This commit is contained in:
Jay
2026-04-23 17:58:40 -04:00
parent 91717457dd
commit 727dc18b57
17 changed files with 488 additions and 248 deletions
+16 -7
View File
@@ -79,20 +79,24 @@ func (m *MockSocket) SetCloseHandler(h func(code int, text string) error) {
// Logging mocks
type MockSlogHandler struct {
records []slog.Record
records *[]slog.Record
attrs []slog.Attr
mu sync.RWMutex
}
func NewMockSlogHandler() *MockSlogHandler {
records := make([]slog.Record, 0)
return &MockSlogHandler{
records: make([]slog.Record, 0),
records: &records,
attrs: make([]slog.Attr, 0),
}
}
func (m *MockSlogHandler) Handle(ctx context.Context, record slog.Record) error {
m.mu.Lock()
defer m.mu.Unlock()
m.records = append(m.records, record)
record.AddAttrs(m.attrs...)
*m.records = append(*m.records, record)
return nil
}
@@ -101,7 +105,12 @@ func (m *MockSlogHandler) Enabled(ctx context.Context, level slog.Level) bool {
}
func (m *MockSlogHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
return m
m.mu.RLock()
defer m.mu.RUnlock()
return &MockSlogHandler{
records: m.records, // shared records slice
attrs: append(m.attrs, attrs...),
}
}
func (m *MockSlogHandler) WithGroup(name string) slog.Handler {
@@ -111,13 +120,13 @@ func (m *MockSlogHandler) WithGroup(name string) slog.Handler {
func (m *MockSlogHandler) GetRecords() []slog.Record {
m.mu.RLock()
defer m.mu.RUnlock()
result := make([]slog.Record, len(m.records))
copy(result, m.records)
result := make([]slog.Record, len(*m.records))
copy(result, *m.records)
return result
}
func (m *MockSlogHandler) Clear() {
m.mu.Lock()
defer m.mu.Unlock()
m.records = make([]slog.Record, 0)
*m.records = make([]slog.Record, 0)
}