At first I didn't like this idea, but the README has converted me to the
possibilities. I have to admit I have a strong aversion to interface{}, and
a map as well, but a lot of the other features are very interesting. I
think, in a larger project, this may be just the thing for structured
logging, though I tend to roll my own.
The single mindedness of errors in go is actually something good IMHO,
though sometimes we'd like to stick more data in, is errors.With("blah",
"blah").Wrap(other_error) Really different than
errors.New(fmt.Sprintf("blah=blah because %s",other_err))? I guess it seems
more pleasing to use a fluid interface if you come to go from a language
that emphasized that, but sometimes the ease of writing occludes the ease
of reading, or reasoning. Also - who has time to learn Yet Another Library.
Yet in a large application, say an API or some kind of webservice,
structured logging and a logging/error API not only has a place, but would
be a boon to the project all. I think it's a great addition to the
ecosystem, and good as a tool for people to use if and when they need it. I
know I'll give it a go on my next project that is a webservice, so this
might be just the thing...
/Jason
Le mercredi 12 octobre 2016 05:34:48 UTC+2, John Jeffery a écrit :
>
> I have been following the progress of package github.com/pkg/errors, and
> have put it to much use. Thanks very much to Dave Cheney and the other
> authors.
>
> A few months ago an interesting issue was raised along the lines of being
> able to attach arbitrary data to the error (
> https://github.com/pkg/errors/issues/34). Some interesting discussion
> ensued, and in the end Dave decided not to add this feature to the package,
> and gave some very good reasons for his decision. This is all good and I
> think I learned a lot from the discussion.
>
> All the same I became quite interested in the idea that, if key/value
> pairs of information could be attached to errors as they "bubble up" the
> stack, then this could provide an alternative to passing a logger down
> through the call stack, adding context along the way until something
> actually has to be logged.
>
> So given that the github.com/pkg/errors package was not going to include
> the feature, I decided to have a go at building an errors package that
> provides a minimal API for programs that make use of structured logging.
> The result is at https://github.com/jjeffery/errors. The API has a very
> small surface area, and I have found it pleasant to use in my own projects.
>
> Of course there are many other popular error handling packages, and
> github.com/pkg/errors combines the best ideas of many of them. I think it
> is a stated goal that github.com/pkg/errors be considered for inclusion
> in the standard library at some point. I just have not seen structured
> key/values integrated into error handling in quite the same way before, and
> thought I'd mention this work and ask for community feedback.
>
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.