package dbx import ( "context" "log/slog" ) // SlogLogger adapts *slog.Logger to the dbx.Logger interface. type SlogLogger struct { Logger *slog.Logger } // NewSlogLogger creates a SlogLogger. If l is nil, slog.Default() is used. func NewSlogLogger(l *slog.Logger) *SlogLogger { if l == nil { l = slog.Default() } return &SlogLogger{Logger: l} } func (s *SlogLogger) Debug(ctx context.Context, msg string, fields ...any) { s.Logger.DebugContext(ctx, msg, fields...) } func (s *SlogLogger) Info(ctx context.Context, msg string, fields ...any) { s.Logger.InfoContext(ctx, msg, fields...) } func (s *SlogLogger) Warn(ctx context.Context, msg string, fields ...any) { s.Logger.WarnContext(ctx, msg, fields...) } func (s *SlogLogger) Error(ctx context.Context, msg string, fields ...any) { s.Logger.ErrorContext(ctx, msg, fields...) } // Compile-time check. var _ Logger = (*SlogLogger)(nil)