package module
Version: v0.2.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2020 License: MIT Imports: 7 Imported by: 12


CircleCI GoDoc


Rollrus is what happens when Logrus meets Rollbar.

Install the hook into a Logrus logger to report logged messages to Rollbar. By default, only messages with the Error, Fatal, or Panic level are reported.

Panic and Fatal errors are reported synchronously to help ensure that logs are delivered before the process exits. All other messages are delivered in the background, and may be dropped if the queue is full.

If the error includes a StackTrace, that StackTrace is reported to rollbar.


Examples available in the tests or on GoDoc.





This section is empty.


This section is empty.


func ReportPanic

func ReportPanic(token, env string)

ReportPanic attempts to report the panic to Rollbar using the provided client and then re-panic. If it can't report the panic it will print an error to stderr.

func SetupLogging

func SetupLogging(token, env string)

SetupLogging for use on Heroku. If token is not an empty string a Rollbar hook is added with the environment set to env. The log formatter is set to a TextFormatter with timestamps disabled.

SetupLogging("some-long-token", "staging")

// This will not be reported to Rollbar

// This will be reported to Rollbar
logrus.WithFields(logrus.Fields{"hi": "there"}).Fatal("The end.")

func SetupLoggingForLevels

func SetupLoggingForLevels(token, env string, levels []logrus.Level)

SetupLoggingForLevels works like SetupLogging, but allows you to set the levels on which to trigger this hook.


type Hook

type Hook struct {
	// contains filtered or unexported fields

Hook is a wrapper for the Rollbar Client and is usable as a logrus.Hook.

func NewHook

func NewHook(token string, env string, opts ...OptionFunc) *Hook

NewHook creates a hook that is intended for use with your own logrus.Logger instance. Uses the default report levels defined in wellKnownErrorFields.

log := logrus.New()
hook := NewHook("my-secret-token", "production")

// This will not be reported to Rollbar
log.WithFields(logrus.Fields{"power_level": "9001"}).Debug("It's over 9000!")

// This will be reported to Rollbar

func NewHookForLevels

func NewHookForLevels(token string, env string, levels []logrus.Level) *Hook

NewHookForLevels provided by the caller. Otherwise works like NewHook.

func (*Hook) Fire

func (r *Hook) Fire(entry *logrus.Entry) error

Fire the hook. This is called by Logrus for entries that match the levels returned by Levels().

func (*Hook) Levels

func (r *Hook) Levels() []logrus.Level

Levels returns the logrus log.Levels that this hook handles

type OptionFunc

type OptionFunc func(*Hook)

OptionFunc that can be passed to NewHook.

func WithIgnoreErrorFunc

func WithIgnoreErrorFunc(fn func(error) bool) OptionFunc

WithIgnoreErrorFunc is an OptionFunc that receives the error that is about to be logged and returns true/false if it wants to fire a Rollbar alert for.

func WithIgnoreFunc

func WithIgnoreFunc(fn func(err error, fields map[string]interface{}) bool) OptionFunc

WithIgnoreFunc is an OptionFunc that receives the error and custom fields that are about to be logged and returns true/false if it wants to fire a Rollbar alert for.

func WithIgnoredErrors

func WithIgnoredErrors(errors ...error) OptionFunc

WithIgnoredErrors is an OptionFunc that whitelists certain errors to prevent them from firing. See

func WithLevels

func WithLevels(levels ...logrus.Level) OptionFunc

WithLevels is an OptionFunc that customizes the log.Levels the hook will report on.

func WithMinLevel

func WithMinLevel(level logrus.Level) OptionFunc

WithMinLevel is an OptionFunc that customizes the log.Levels the hook will report on by selecting all levels more severe than the one provided.


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL