github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mch/core/error_handler.go (about) 1 package core 2 3 import ( 4 "log" 5 "net/http" 6 "os" 7 ) 8 9 type ErrorHandler interface { 10 // ServeError 处理回调的错误, 比如 xml 解码出错, return_code != "SUCCESS", result_code != "SUCCESS", ... 11 ServeError(http.ResponseWriter, *http.Request, error) 12 } 13 14 var DefaultErrorHandler ErrorHandler = ErrorHandlerFunc(defaultErrorHandlerFunc) 15 16 type ErrorHandlerFunc func(http.ResponseWriter, *http.Request, error) 17 18 func (fn ErrorHandlerFunc) ServeError(w http.ResponseWriter, r *http.Request, err error) { 19 fn(w, r, err) 20 } 21 22 var errorLogger = log.New(os.Stderr, "[WECHAT_ERROR] ", log.Ldate|log.Ltime|log.Lmicroseconds|log.Llongfile) 23 24 func defaultErrorHandlerFunc(w http.ResponseWriter, r *http.Request, err error) { 25 errorLogger.Output(3, err.Error()) 26 }