Skip to content

assembla/logrus-airbrake-hook

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airbrake Hook for Logrus :walrus: Build Status godoc reference

Use this hook to send your errors to Airbrake. This hook is using the official airbrake go package, and will hit the api V3. The hook is synchronous and will send the error for log.Error, log.Fatal and log.Panic levels.

All logrus fields will be sent as context fields on Airbrake.

Usage

The hook must be configured with:

  • A project ID (found in your your Airbrake project settings)
  • An API key ID (found in your your Airbrake project settings)
  • The name of the current environment ("development", "staging", "production", ...)
import (
    "log/syslog"
    "github.com/sirupsen/logrus"
    "gopkg.in/gemnasium/logrus-airbrake-hook.v3" // the package is named "aibrake"
    )

func main() {
    log := logrus.New()
    log.AddHook(airbrake.NewHook(123, "xyz", "production"))
    log.Error("some logging message")
}

Note that if environment == "development", the hook will not send anything to airbrake.

Reporting http request failure

import (
    "log/syslog"
    "github.com/sirupsen/logrus"
    "gopkg.in/gemnasium/logrus-airbrake-hook.v3" // the package is named "aibrake"
    )

func main() {
    log := logrus.New()
    log.AddHook(airbrake.NewHook(123, "xyz", "production"))
req, err := http.NewRequest("GET", "http://example.com", nil)
    log.WithField("request", req).Error("some logging message")
}

Notes:

  • the req will be removed from the log entry
  • the name of the field doesn't matter, since it's not logged
  • if more than one request is sent, only the first will be taken into account (and the others will be logged as strings)

About

Airbrake hook for logrus, using the official gobrake package

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%