> Can you link that discussion, please, for those of us who may have not 
seen the discussion nor be able to find the specific discussion via search?

https://github.com/golang/go/issues/56345 (super-thread)
https://github.com/golang/go/issues/58243 (what to do about context)

There's more scattered in other closed issues. I remain totally impressed 
by Jonathan Amsterdam's willingness to have kept up with things ... 
particularly with contexts the API evolved a bit in ways that were 
difficult to work out before lots of public commentary.

> it still does not solve the inconsistency problem across 3rd party 
packages used by a Go app

FWIW I think pkg.go.dev "Imported by" numbers show adoption of slog has 
been pretty good - I am going by memory but slog is up to 40k importers, 
and I'm fairly certain that logrus, zap, and zerolog have grown by maybe a 
few thousand since slog was included in the standard library. In theory 
custom wrapping of slog Handlers is flexible enough to integrate diverging 
opinions between dependencies of a project. I don't know how frequently 
that is leveraged in solutions.
On Saturday, March 29, 2025 at 9:36:00 PM UTC-7 Mike Schinkel wrote:

> > On Mar 28, 2025, at 8:58 AM, cpu...@gmail.com <cpu...@gmail.com> wrote:
> > 
> > I'm in the process of converting our application (evcc.io) from using 
> spf13/jwalterweatherman for logging to log/slog. 
>
> This is a very serendipitously timed discussion (for me) since yesterday 
> and today I have been working on how to configure logging for a new project 
> I am working on. 
>
> The solution I have is built on top of slog and leverages slog.Default() 
> and then uses a package variable `logger` defined in every package I write. 
> I add a `logger.go` file to every one of my packages and then add this line 
> of code which uses a small package I write with a `Logger` type simply to 
> embed slog.Log so I could add my own methods and to preprocess calls to 
> *slog.Logger if I find that to be needed down the road.
>
> var logger = logging.NewPackageLogger("<package_name>") // UPDATE this 
> with your package name
>
> I don't love this approach because it requires adding an updated version 
> of this file to every package I write but it feels the most workable 
> solution I have tried to date, and this is about my 5th iteration of trying 
> to find a workable solution for logging. (BTW, sure would be nice if Go had 
> a way to capture the name of the current package using a well-known 
> constant like PACKAGE_NAME, but I digress.)
>
> Here is the current state of my logging package along with a few examples 
> of using it:
>
> https://gist.github.com/mikeschinkel/3b1fb9ac4bbc200c95d0fc31692959ce
>
> I have not yet run this approach in production so I do not know if I will 
> discover it to be unworkable. I decided to mention it here to solicit input 
> from anyone who might be able to find a reason this approach might not be 
> workable.
>
> > On Mar 29, 2025, at 5:44 PM, Andrew Harris <harris...@gmail.com> wrote:
> > 
> > The question of how to pass loggers around was discussed at significant 
> length in GitHub, and drew a lot of strong opinions. 
>
> Can you link that discussion, please, for those of us who may have not 
> seen the discussion nor be able to find the specific discussion via search?
>
> > More so than other standard library stuff, any particular piece of the 
> slog API is maybe less an eager endorsement of best practices, but more 
> about matching what exists in other popular logging packages.
>
> Yes. 
>
> While I do appreciate slog for being a big improvement over log, it still 
> does not solve the inconsistency problem across 3rd party packages used by 
> a Go app. And the fact there are a lot of strong conflicting opinions 
> ensures we won't see a convergence to a defacto-standard approach to 
> logging unless and until there emerges some new innovation for logging from 
> the Go team.
>
> -Mike
>
> P.S. Maybe Go could add a way for a package to register some sort of 
> middleware hook so that a developer wanting to orchestrate the use of 
> logging across all packages use could do so like we can currently handle 
> HTTP requests and responses? OTOH, I almost feel like logging needs special 
> handling by the compiler given how opinions regarding best practices 
> diverge to such an extent... 🤔
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/d85ef0d4-046a-4af0-975c-4245241cafe4n%40googlegroups.com.

Reply via email to