errors
logutil
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
errors
-
Who returns specific error interfaces to model domain errors?
I usually use https://github.com/cockroachdb/errors for reasons that you can read in their documentation. It is well thought out and is no more complicated than it needs to be. It is a drop in replacement for the standard errors package and they have built this from experience, which is usually a good thing. It is usually best to stick to interfaces. With concrete errors, you will be doomed to deal with them forever.
-
Go's Error Handling Is a Form of Storytelling
https://github.com/cockroachdb/errors has worked great for me! Agreed this should be part of the core language though.
-
Anyone using github.com/pkg/errors for stack traces?
https://github.com/cockroachdb/errors is the most featureful in this space, but is heavy if you don't need network portability, redaction, and all the other bells and whistles.
-
go-faster/errors: clear go error wrapping with caller (xerrors fork with Wrap)
The cockroachdb/errors is too big
- Error stack traces in Go with x/xerror
-
Comparison golang stacktrace error library output
Golang is great. I mostly love it. However, collecting an error with relevant context and a nicely formatted stacktrace is kind of a mess of competing approaches. This this feature comparison is a good overview of the landscape.
logutil
-
Error stack traces in Go with x/xerror
> At boundaries between our code and calls out to external packages, make an effort to always wrap the result with xerrors.Errorf. This ensures that we always capture a stack trace at the most proximate location of an error being generated as possible
I've been doing something similar for a while using `errors.WithStack` from https://github.com/pkg/errors
The error can then be logged with https://github.com/rs/zerolog like this `log.Error().Stack().Err(err).Msg("")`
And using a console writer it's possible to get human readable output instead of the standard JSON, see https://github.com/mozey/logutil
What are some alternatives?
golangci-lint - Fast linters Runner for Go
backward-cpp - A beautiful stack trace pretty printer for C++
emperror - The Emperor takes care of all errors personally
json-logs - A tool to pretty-print JSON logs, like those from zap or logrus.
zerolog - Zero Allocation JSON Logger
errcode
errors - Simple error handling primitives
xtrace - A simple library to extract traces from golang's xerrors