DarthSim f1f9a355c7 Forgotten vendor 6 vuotta sitten
..
.craft.yml f1f9a355c7 Forgotten vendor 6 vuotta sitten
.gitignore f1f9a355c7 Forgotten vendor 6 vuotta sitten
.golangci.yml f1f9a355c7 Forgotten vendor 6 vuotta sitten
.travis.yml f1f9a355c7 Forgotten vendor 6 vuotta sitten
CHANGELOG.md f1f9a355c7 Forgotten vendor 6 vuotta sitten
CONTRIBUTION.md f1f9a355c7 Forgotten vendor 6 vuotta sitten
LICENSE f1f9a355c7 Forgotten vendor 6 vuotta sitten
MIGRATION.md f1f9a355c7 Forgotten vendor 6 vuotta sitten
README.md f1f9a355c7 Forgotten vendor 6 vuotta sitten
client.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
dsn.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
go.mod f1f9a355c7 Forgotten vendor 6 vuotta sitten
go.sum f1f9a355c7 Forgotten vendor 6 vuotta sitten
hub.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
integrations.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
interfaces.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
scope.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
sentry.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
sourcereader.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
stacktrace.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
transport.go f1f9a355c7 Forgotten vendor 6 vuotta sitten
util.go f1f9a355c7 Forgotten vendor 6 vuotta sitten

README.md


Official Sentry SDK for Go

Build Status Go Report Card

sentry-go provides a Sentry client implementation for the Go programming language. This is the next line of the Go SDK for Sentry, intended to replace the raven-go package.

Looking for the old raven-go SDK documentation? See the Legacy client section here. If you want to start using sentry-go instead, check out the migration guide.

Requirements

We verify this package against N-2 recent versions of Go compiler. As of June 2019, those versions are:

  • 1.10
  • 1.11
  • 1.12

Installation

sentry-go can be installed like any other Go library through go get:

$ go get github.com/getsentry/sentry-go

Or, if you are already using Go Modules, specify a version number as well:

$ go get github.com/getsentry/sentry-go@v0.1.0

Configuration

To use sentry-go, you’ll need to import the sentry-go package and initialize it with the client options that will include your DSN. If you specify the SENTRY_DSN environment variable, you can omit this value from options and it will be picked up automatically for you. The release and environment can also be specified in the environment variables SENTRY_RELEASE and SENTRY_ENVIRONMENT respectively.

More on this in Configuration section.

Usage

By default, Sentry Go SDK uses asynchronous transport, which in the code example below requires an explicit awaiting for event delivery to be finished using sentry.Flush method. It is necessary, because otherwise the program would not wait for the async HTTP calls to return a response, and exit the process immediately when it reached the end of the main function. It would not be required inside a running goroutine or if you would use HTTPSyncTransport, which you can read about in Transports section.

package main

import (
    "fmt"
    "os"
    "time"

    "github.com/getsentry/sentry-go"
)

func main() {
  err := sentry.Init(sentry.ClientOptions{
    Dsn: "___DSN___",
  })

  if err != nil {
    fmt.Printf("Sentry initialization failed: %v\n", err)
  }
  
  f, err := os.Open("filename.ext")
  if err != nil {
    sentry.CaptureException(err)
    sentry.Flush(time.Second * 5)
  }
}

For more detailed information about how to get the most out of sentry-go there is additional documentation available:

Resources:

License

Licensed under the BSD license, see LICENSE

Community

Want to join our Sentry's community-golang channel, get involved and help us improve the SDK?

Do not hesistate to shoot me up an email at kamil@sentry.io for Slack invite!