12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package bugsnag
- import (
- "net/http"
- "github.com/bugsnag/bugsnag-go/v2"
- "github.com/sirupsen/logrus"
- "github.com/imgproxy/imgproxy/v3/config"
- )
- var enabled bool
- type logger struct{}
- func (l logger) Printf(format string, v ...interface{}) {
- logrus.WithField("source", "bugsnag").Debugf(format, v...)
- }
- func Init() {
- if len(config.BugsnagKey) > 0 {
- bugsnag.Configure(bugsnag.Configuration{
- APIKey: config.BugsnagKey,
- ReleaseStage: config.BugsnagStage,
- PanicHandler: func() {}, // Disable forking the process
- Logger: logger{},
- })
- enabled = true
- }
- }
- func Report(err error, req *http.Request, meta map[string]any) {
- if !enabled {
- return
- }
- extra := make(bugsnag.MetaData)
- for k, v := range meta {
- extra.Add("Processing Context", k, v)
- }
- bugsnag.Notify(err, req, extra)
- }
|