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  }