Rework the Airbrake hook
Rework the Airbrake hook to: a) change the interface so that the Airbrake credentials are stored in an unexported struct, `airbrakeHook`, which is instantiated using the `NewHook()` method b) send log entries where no 'error' field is set to Airbrake, using the `entry.Message` string as the message sent to Airbrake but continue to allow the passing of error types using the 'error' field Update the tests accordingly, assuring that the correct message is received by the Airbrake server. Also update the examples in the README, which would not have worked with the previous implementation of the Airbrake hook.
This commit is contained in:
@@ -3,21 +3,16 @@ package main
|
||||
import (
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/Sirupsen/logrus/hooks/airbrake"
|
||||
"github.com/tobi/airbrake-go"
|
||||
)
|
||||
|
||||
var log = logrus.New()
|
||||
|
||||
func init() {
|
||||
log.Formatter = new(logrus.TextFormatter) // default
|
||||
log.Hooks.Add(new(logrus_airbrake.AirbrakeHook))
|
||||
log.Hooks.Add(airbrake.NewHook("https://example.com", "xyz", "development"))
|
||||
}
|
||||
|
||||
func main() {
|
||||
airbrake.Endpoint = "https://exceptions.whatever.com/notifier_api/v2/notices.xml"
|
||||
airbrake.ApiKey = "whatever"
|
||||
airbrake.Environment = "production"
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
"animal": "walrus",
|
||||
"size": 10,
|
||||
|
||||
Reference in New Issue
Block a user