recovery/recovery.go
func LogOnPanic(id int64, err interface{}, stacktrace []string, _ *http.Request) {
	logMutex.Lock()
	defer logMutex.Unlock()

	log.Printf("panic=%016x message=%v\n", id, err)
	for _, line := range stacktrace {
		log.Printf("panic=%016x %s", id, line)
	}
}
func LogOnPanic(id int64, err interface{}, stacktrace []string, _ *http.Request) {
	logMutex.Lock()
	defer logMutex.Unlock()

	log.Printf("panic=%016x message=%v\n", id, err)
	for _, line := range stacktrace {
		log.Printf("panic=%016x %s", id, line)
	}
}
// LogOnPanic logs the given panic and its stacktrace, prefixing each line with
// the panic ID.