ref: main/client.go
Hey all. Can we Update the retryablehttp.Client.Logger field to be one of the following?
- A composite interface (ala go 1.18+ generics)?
type RetryableHttpLoggerConstraint interface {
retryablehttp.Logger | retryablehttp.LeveledLogger
}
func SetLogger[T LoggerConstraint](client *retryablehttp.Client, logger T) {
client.Logger = logger
}
- A single interface (
retryablehttp.LeveledLogger or retryablehttp.Logger or something else)
Doing a type check and panic-ing at runtime is no bueno and is likely to cause incidents in production (like it did with us).