Remix.run Logo
9rx 2 days ago

> I believe you understand my complaint.

I don't, really. If performance is of utmost concern, you're not going to accept the overhead of passing the logger through an interface anyway, so that's moot. A library concerned about performance as a top priority has to pick one and only one.

But if a library has decided that flexibility is more important than raw efficiency, then the interface is already defined.

    zaplogger.Info("Calling third-party library")
    thirdparty.Call(slog.New(zaplogger)) // Logs whatever the package logs to zaplogger
    zaplogger.Info("Called third-party library")
The only 'problem' I can see is if `zaplogger` hasn't implemented the interface. But there isn't much the Go team can do about implementations not playing nicely.