Instantly share code, notes, and snippets.

Embed
What would you like to do?
func RegisterRecovery() gin.HandlerFunc {
return func(c *gin.Context) {
defer func() {
if err := recover(); err != nil {
httprequest, _ := httputil.DumpRequest(c.Request, false)
pp.Println(err)
m := gomail.NewMessage()
m.SetHeader("From", "goblog@cibernomadas.es")
m.SetHeader("To", "admin@cibernomadas.es")
m.SetHeader("Subject", "GoBlog Error")
m.SetBody("text/plain", fmt.Sprintf(`Hi admin,\n unexpected error has happend en GoBlog.
Following there is the user request:\n%s
Following there is the panic error:\n\n%s`, string(httprequest), err))
d := gomail.Dialer{Host: "localhost", Port: 25}
if err := d.DialAndSend(m); err != nil {
panic(err)
}
c.HTML(http.StatusOK, "index", gin.H{
"title": "Hi! GoBlog.",
"error": "You found an error. The administrator has been notified.",
})
}
}()
c.Next()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment