rollrus

package module
Version: v0.2.0 Latest Latest
Warning

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

README

CircleCI GoDoc

What

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.

Usage

Examples available in the tests or on GoDoc.

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

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.

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

// This will not be reported to Rollbar
logrus.Info("OHAI")

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

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.

Types

type Hook

type Hook struct {
	*rollbar.Client
	// 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.

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

// 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
log.Panic("Boom.")
Output:

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 https://golang.org/ref/spec#Comparison_operators

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.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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