Files
axis_timelapse/axis_timelapse.go
William Gill eafa75614e getting there
2025-10-05 21:54:09 +00:00

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()
}