errortracking/tracker_options.go (35 lines of code) (raw):
package errortracking
// The configuration for Tracker.
type trackerConfig struct {
sentryDSN string
version string
sentryEnvironment string
loggerName string
}
// TrackerOption will configure a Tracker.
type TrackerOption func(*trackerConfig)
func applyTrackerOptions(opts []TrackerOption) trackerConfig {
config := trackerConfig{}
for _, v := range opts {
v(&config)
}
return config
}
// WithSentryDSN sets the sentry data source name.
func WithSentryDSN(sentryDSN string) TrackerOption {
return func(config *trackerConfig) {
config.sentryDSN = sentryDSN
}
}
// WithVersion is used to configure the version of the service
// that is currently running.
func WithVersion(version string) TrackerOption {
return func(config *trackerConfig) {
config.version = version
}
}
// WithSentryEnvironment sets the sentry environment.
func WithSentryEnvironment(sentryEnvironment string) TrackerOption {
return func(config *trackerConfig) {
config.sentryEnvironment = sentryEnvironment
}
}
// WithLoggerName sets the logger name.
func WithLoggerName(loggerName string) TrackerOption {
return func(config *trackerConfig) {
config.loggerName = loggerName
}
}