package frankenphp_test import ( "bytes" "fmt" "log/slog" "sync" "testing" ) func newTestLogger(t *testing.T) (*slog.Logger, fmt.Stringer) { t.Helper() var buf syncBuffer return slog.New(slog.NewTextHandler(&buf, &slog.HandlerOptions{Level: slog.LevelDebug})), &buf } // SyncBuffer is a thread-safe buffer for capturing logs in tests. type syncBuffer struct { b bytes.Buffer mu sync.RWMutex } func (s *syncBuffer) Write(p []byte) (n int, err error) { s.mu.Lock() defer s.mu.Unlock() return s.b.Write(p) } func (s *syncBuffer) String() string { s.mu.RLock() defer s.mu.RUnlock() return s.b.String() }