errortracking/tracker.go (27 lines of code) (raw):

package errortracking import "github.com/getsentry/sentry-go" // Tracker is an abstraction for error tracking. type Tracker interface { // Capture reports an error to the error reporting service Capture(err error, opts ...CaptureOption) } var ( defaultTracker = newSentryTracker(sentry.CurrentHub()) ) // DefaultTracker returns the default global error tracker. func DefaultTracker() Tracker { return defaultTracker } // NewTracker constructs a new Tracker with the provided options. func NewTracker(opts ...TrackerOption) (Tracker, error) { client, err := sentry.NewClient(trackerOptionsToSentryClientOptions(opts...)) if err != nil { return nil, err } hub := sentry.NewHub(client, sentry.NewScope()) return newSentryTracker(hub), nil } func trackerOptionsToSentryClientOptions(opts ...TrackerOption) sentry.ClientOptions { config := applyTrackerOptions(opts) return sentry.ClientOptions{ Dsn: config.sentryDSN, Release: config.version, Environment: config.sentryEnvironment, } }