# logrus-airbrake-hook **Repository Path**: mirrors/logrus-airbrake-hook ## Basic Information - **Project Name**: logrus-airbrake-hook - **Description**: Use this hook to send your errors to Airbrake. - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-05-06 - **Last Updated**: 2025-09-13 ## Categories & Tags **Categories**: logging **Tags**: None ## README # Airbrake Hook for Logrus :walrus: [![Build Status](https://travis-ci.org/gemnasium/logrus-airbrake-hook.svg?branch=master)](https://travis-ci.org/gemnasium/logrus-airbrake-hook) [![godoc reference](https://godoc.org/github.com/gemnasium/logrus-airbrake-hook?status.png)](https://godoc.org/gopkg.in/gemnasium/logrus-airbrake-hook.v4) Use this hook to send your errors to [Airbrake](https://airbrake.io/). This hook is using the [official airbrake go package](https://github.com/airbrake/gobrake), and will hit the api V4. 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", ...) ```go import ( "log/syslog" "github.com/sirupsen/logrus" "gopkg.in/gemnasium/logrus-airbrake-hook.v4" // 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 ```go import ( "log/syslog" "github.com/sirupsen/logrus" "gopkg.in/gemnasium/logrus-airbrake-hook.v4" // 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)