SIGN IN SIGN UP
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()
}