- Move start of delivery goroutine to configure, don't wait on signals in delivery #250
- Limit resource usage while sending events asynchronously
Added MainContext configuration option for providing context from main app #231
- Sanitize for metadata should also handler json and []byte #226 Chris Duncan
- Handle empty pointers to complex structs in metadata.Add #221
-
Start showing inlined functions in stack trace #208
-
Handle complex structs in metadata #215 Chris Duncan
-
Stop trimming everything before "main.go" on main packages #217 Chris Duncan
- Fix middleware panic on nil *http.Request #212
-
Support pkg/errors
Unwrap()
onerrors.Error
objects #194 Jayce Pulsipher -
Document double star glob patterns are available for
ProjectPackages
subpackage names. #184 Genta Kamitani
- Replace the gofrs/uuid dependency to maintain support for older versions of Go #196
- Replace the gofrs/uuid dependency to maintain support for older versions of Go #196
- Update panicwrap dependency to v1.3.4 which fixes build support for linux & darwin arm64.
- Update panicwrap dependency to 1.3.2, adding support for darwin arm64
- Support appending metadata through environment variables prefixed with
BUGSNAG_METADATA_
- Fix
GOPATH
,SourceRoot
and project package path stripping from stack traces on Windows by using the correct path separators.
The v2 release adds support for Go modules, removes web framework integrations from the main repository, and supports library configuration through environment variables.
The new module is available via:
import "github.com/bugsnag/bugsnag-go/v2"
- Removed
Configuration.Endpoint
. UseConfiguration.Endpoints
instead. For more info and an example, see the Upgrading guide - Web framework integrations have been moved to separate repositories:
- bugsnag-go-gin
- bugsnag-go-negroni
- bugsnag-go-revel
- The
martini
framework integration has been retired
bugsnag.VERSION
has been renamedbugsnag.Version
- Support configuring Bugsnag through environment variables
- Support reporting panics caused by overflowing the stack
- Support capturing "fatal error"-style panics from go, such as from concurrent map read/writes, out of memory errors, and nil goroutines.
-
Support unwrapping the underlying causes from an error, including attached stack trace contents if available.
Any reported error which implements the following interface:
type errorWithCause interface { Unwrap() error }
will have the cause included as a previous error in the resulting event. The cause information will be available on the Bugsnag dashboard and is available for inspection in callbacks on the
errors.Error
object.bugsnag.OnBeforeNotify(func(event *bugsnag.Event, config *bugsnag.Configuration) error { if event.Error.Cause != nil { fmt.Printf("This error was caused by %v", event.Error.Cause.Error()) } return nil })
-
Support for changing the handled-ness of an event prior to delivery. This allows for otherwise handled events to affect a project's stability score.
bugsnag.Notify(err, func(event *bugsnag.Event) { event.Unhandled = true })
-
Extract stacktrace contents on errors wrapped by
pkg/errors
. #144 -
Support modifying an individual event using a callback function argument.
bugsnag.Notify(err, func(event *bugsnag.Event) { event.ErrorClass = "Unexpected Termination" event.MetaData.Update(loadJobData()) if event.Stacktrace[0].File = "mylogger.go" { event.Stacktrace = event.Stacktrace[1:] } })
The stack trace of an event is now mutable so frames can be removed or modified. #146
- Send web framework name with severity reason if set. Previously this value was ignored, obscuring the severity reason for failed web requests captured by bugsnag middleware. #143
This release adds runtime version data to the report and session payloads, which will show up under the Device tab in the Bugsnag dashboard.
- Ignore Gin unit tests when running against the latest version of Gin on Go versions below 1.10 as Gin has dropped support for these versions. #121
- Introduce runtime version data to the report and session payloads. Additionally adds the OS name to reports. #122
This release adds "access_token"
to the default list of keys to filter and introduces filtering of URL query parameters under the request tab.
- Adds filtering of URL parameters in the request tab of an event. Additionally adds
access_token
to theParamsFilters
by default. #117 Adam Renberg Tamm - Ignore Gin unit tests when running against the latest version of Gin on Go 1.7 as Gin has dropped support for Go 1.6 and Go 1.7. #118
This release re-introduces prioritizing user specified error classes over the inferred error class.
- Fixes a bug introduced in
v1.4.0
wherebugsnag.Notify(err, bugsnag.ErrorClass{Name: "MyCustomErrorClass"})
is not respected. #115
- Testing improvements #105
- Only run full test suite on PRs targeting master
- Test against the latest release of go (currently 1.12) rather than go's unstable master branch
- App engine has not been supported for a while. This release removes the app engine-specific code and tests from the codebase #109.
This release fixes a compilation error on Windows. Due to a missing implementation in the Go library, Windows users may have to send two interrupt signals to interrupt the application. Other signals are unaffected.
Additionally, ensure data sanitisation behaves the same for both request data and metadata.
-
Use the
os
package instead ofsyscall
to re-send signals, assyscall
varies per platform, which caused a compilation error. -
Make sure that all data sanitization using
Config.ParamsFilters
behaves the same. #104 Adam Renberg Tamm
This release is a big non-breaking revamp of the notifier. Most importantly, this release introduces session tracking to Go applications.
As of this release we require that you use Go 1.7 or higher.
- Session tracking to be able to show a stability score in the dashboard. Automatic recording of sessions for net/http, gin, revel, negroni and martini. Automatic capturing of sessions can be disabled using the
AutoCaptureSessions
configuration parameter. - Automatic recording of HTTP request information such as HTTP method, headers, URL and query parameters.
- Migrate report payload version from 3 to 4.
- Improve test coverage and introduce maze runner tests. Simplify integration tests for Negroni, Gin and Martini.
- Deprecate the use of the old
Endpoint
configuration parameter, and allow users of on-premise to configure both the notify endpoint and the sessions endpoint. bugsnag.Notify()
now accepts acontext.Context
object, generally from*http.Request
'sr.Context()
, which Bugsnag can extract session and request information from.- Improve and augment examples (
bugsnag_example_test.go
) for documentation. - Improve example applications (
examples/
directory) to get up and running faster. - Clarify and improve GoDocs.
- Improved serialization performance and safety of the report payload.
- Filter HTTP headers based on the
FiltersParams
. - Revel enhancements:
- Ensure all non-code configuration options are configurable from config file.
- Stop using deprecated logger.
- Attempt to configure a what we can from the revel configuration options.
- Make NotifyReleaseStages work consistently with other notifiers, both for sessions and for reports.
- Also filter out 'authorization' and 'cookie' by default, to match other notifiers.
- Address compile errors test failures that failed the build.
- Don't crash when calling
bugsnag.Notify(nil)
- Other minor bug fixes that came to light after improving test coverage.
- Ensure error reports for fatal crashes gets sent #77
- Add support for Revel v0.18 #63 Cameron Halter
- Track whether an error report was captured automatically
- Add SourceRoot as a configuration option, defaulting to
$GOPATH
- Point osext dependency at upstream, update with fixes
- Improve goroutine panic reporting by sending reports synchronously in the case that a goroutine is about to be cleaned up #52
-
Support custom stack frame implementations alexanderwilling #43
-
Support app.type in error reports Jascha Ephraim #51
- Mend nil pointer panic in metadata Johan Sageryd #46
- Replace empty error class property in reports with "error"
-
Add middleware for Negroni am-manideep #28
-
Support stripping subpackage names Facundo Ferrer #25
-
Support using
ErrorWithCallers
to create a stacktrace for errors Conrad Irwin #35
- Avoid swallowing errors which occur upon delivery
- Fix appengine integration broken by 1.0.3
- Allow any Logger with a Printf method.
- Use bugsnag copies of dependencies to avoid potential link rot
- gofmt/golint/govet docs improvements.