53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"axis_timelapse/cmd"
|
|
"axis_timelapse/config"
|
|
|
|
"github.com/getsentry/sentry-go"
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func main() {
|
|
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
|
|
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
|
|
|
//// ***** Start Sentry ***** ////
|
|
log.Info().Msg(config.Project + ": Initializing Error Reporting.")
|
|
|
|
sentrySyncTransport := sentry.NewHTTPSyncTransport()
|
|
sentrySyncTransport.Timeout = time.Second * 3
|
|
|
|
err := sentry.Init(sentry.ClientOptions{
|
|
Dsn: config.SentryDSN,
|
|
Environment: "Production",
|
|
Release: config.Project + "@" + config.Version,
|
|
Debug: false,
|
|
AttachStacktrace: true,
|
|
Transport: sentrySyncTransport,
|
|
BeforeSend: func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
|
|
if hint.Context != nil {
|
|
if req, ok := hint.Context.Value(sentry.RequestContextKey).(*http.Request); ok {
|
|
log.Print(req)
|
|
}
|
|
}
|
|
log.Print(event)
|
|
return event
|
|
},
|
|
})
|
|
if err != nil {
|
|
log.Fatal().Err(err).Msgf("Sentry initialization failed.")
|
|
}
|
|
|
|
// Flush buffered events before the program terminates.
|
|
// Set the timeout to the maximum duration the program can afford to wait.
|
|
defer sentry.Flush(2 * time.Second)
|
|
//// ***** End Sentry ***** ////
|
|
|
|
cmd.Execute()
|
|
}
|