diff --git a/controller/bom_controller.go b/controller/bom_controller.go
index dbcf703..44ee1ce 100644
--- a/controller/bom_controller.go
+++ b/controller/bom_controller.go
@@ -1,8 +1,8 @@
 package controller
 
 import (
-	"fmt"
 	"github.com/gin-gonic/gin"
+	"github.com/ichunt2019/logger"
 	"search_server/pkg/common"
 	"search_server/service"
 )
@@ -28,7 +28,7 @@ func Recommend(c *gin.Context) {
 	req := &common.RecommendRequest{}
 	err := c.Bind(&req) //使用的是post参数
 	if err != nil {
-		fmt.Println(err)
+		logger.Error("%s", err.Error())
 	}
 	if req.Flag == 0 {
 		common.Output(101, "参数不全", nil)
diff --git a/controller/get_data_controller.go b/controller/get_data_controller.go
index 7ebbec7..c7391b7 100644
--- a/controller/get_data_controller.go
+++ b/controller/get_data_controller.go
@@ -1,9 +1,9 @@
 package controller
 
 import (
-	"fmt"
 	"github.com/gin-gonic/gin"
 	"github.com/gomodule/redigo/redis"
+	"github.com/ichunt2019/logger"
 	"github.com/syyongx/php2go"
 	"github.com/tidwall/gjson"
 	"search_server/pkg/common"
@@ -41,14 +41,13 @@ func GetDataIndex(c *gin.Context) {
 			defer redisCon.Close()
 			//获取stockFlag
 			res, err := redis.Bool(redisCon.Do("SADD", "search_keyword_member", r.Keyword+"_"+r.SupplierName))
-			fmt.Println(r.Keyword + "_" + r.SupplierName)
 			if err != nil {
-				fmt.Println(err)
+				logger.Error("%s", err.Error())
 			}
 			if res {
 				_, err := redis.Bool(redisCon.Do("INCR", config.Get("redis_all.SEARCH_API_TOTAL_PRE").String()+r.SupplierName))
 				if err != nil {
-					fmt.Println(err)
+					logger.Error("%s", err.Error())
 				}
 			}
 			r.FirstSearchPage = 2
@@ -71,7 +70,8 @@ func GetDataIndex(c *gin.Context) {
 	result := service.GetReturnSupplierData(dullData)
 	result["total"] = gjson.Get(esResult, "hits.total").Int()
 	result["took"] = gjson.Get(esResult, "took").Int()
-	c.JSON(200, common.SuccessResponse(0, "", result))
+	common.Output(0, "", result)
+	return
 }
 
 //获取查询es的条件语句
diff --git a/pkg/common/function.go b/pkg/common/function.go
index c71f89b..374b8b2 100644
--- a/pkg/common/function.go
+++ b/pkg/common/function.go
@@ -129,6 +129,7 @@ func NumberToHtml(number int) (html string) {
 	}
 	return
 }
+
 /**
  * 生成纯小写字母的字符串
  * 返回形式如下 :  yuiopkdsi rnvewjeil xmiqplmza
@@ -266,9 +267,6 @@ func auth() bool {
 	return false
 }
 
-
-
-
 // interface{}转为 []interface{}
 //將任意類型的切片轉為 []interface{}
 func CreateAnyTypeSlice(slice interface{}) ([]interface{}, bool) {
@@ -300,3 +298,17 @@ func isSlice(arg interface{}) (val reflect.Value, ok bool) {
 	return
 }
 
+//向左补充字符串
+func StrPadLeft(input string, padLength int, padString string) string {
+	output := padString
+
+	for padLength > len(output) {
+		output += output
+	}
+
+	if len(input) >= padLength {
+		return input
+	}
+
+	return output[:padLength-len(input)] + input
+}
diff --git a/pkg/common/log_report.go b/pkg/common/log_report.go
new file mode 100644
index 0000000..bd4052e
--- /dev/null
+++ b/pkg/common/log_report.go
@@ -0,0 +1,93 @@
+package common
+
+import (
+	"encoding/json"
+	"github.com/gomodule/redigo/redis"
+	"github.com/ichunt2019/logger"
+	log "github.com/sirupsen/logrus"
+	"os"
+	"search_server/middleware"
+	"search_server/pkg/config"
+	"search_server/pkg/gredis"
+	"search_server/pkg/message"
+	"strconv"
+	"strings"
+	"time"
+)
+
+type SearchApiLog struct {
+	Msg      string `json:"msg"`
+	MsgCode  string `json:"msgCode"`
+	Ts       int64 `json:"ts"`
+	DateStr  string `json:"dateStr"`
+	App      string `json:"app"`
+	ServerIp string `json:"serverIp"`
+	FileName string `json:"fileName"`
+	LineNo   string `json:"lineNo"`
+	Method   string `json:"method"`
+}
+
+func AnalyzeSearchError(code int, ip, errMsg, file, line, method string) (log SearchApiLog) {
+	//获取所有参数
+	request := make(map[string]string)
+	ctx := middleware.Context
+	ctx.MultipartForm()
+	for name, value := range ctx.Request.Form {
+		if value[0] != "" {
+			request[name] = strings.TrimSpace(value[0])
+		}
+	}
+	requestByte, _ := json.Marshal(request)
+	log.Msg = errMsg + string(requestByte)
+	codeStr := strconv.Itoa(code)
+	log.MsgCode = StrPadLeft(codeStr, 6, "0")
+	log.Ts = time.Now().Unix()
+	log.DateStr = time.Now().Format("2006-01-02 15:04:05")
+	log.App = "search_api"
+	log.ServerIp = ip
+	log.FileName = file
+	log.LineNo = line
+	log.Method = method
+
+	//还要判断是否要推送消息
+	unitSupplierLogCode := config.Cfg.Section("UNIT_SUPPLIER_LOG_CODE").KeysHash()
+	if unitSupplierLogCode[codeStr] == "" {
+		if !strings.Contains(strings.ToUpper(errMsg), "SOAP-ERROR") {
+			//推送到钉钉
+			result, err := message.DingDingPush(errMsg)
+			if err != nil || result.Errcode != 0 {
+				logger.Error("%s", err, result)
+			}
+		}
+	} else {
+		redisCon := gredis.Conn("search_w")
+		defer redisCon.Close()
+		key := config.Get("SEARCH_API_LOG.SEARCH_API_ERROR_PRE").String() + unitSupplierLogCode[codeStr]
+		_, err := redis.Bool(redisCon.Do("INCR", key))
+		if err != nil {
+			logger.Error("%s", err)
+		}
+	}
+	return
+}
+
+type LogFormatter struct{}
+
+//格式详情
+func (s *LogFormatter) Format(entry *log.Entry) ([]byte, error) {
+	msg := entry.Message + "\n"
+	return []byte(msg), nil
+}
+
+//写入到特定的文件夹给ELK使用的日志
+func WriteSearchErrorLog(searchLog string) {
+	// 设置日志格式为json格式
+	log.SetFormatter(new(LogFormatter))
+	path := "../logs/search/"
+	//设置output,默认为stderr,可以为任何io.Writer,比如文件*os.File
+	//生成当天的日志
+	filePath := path + time.Now().Format("20060102") + ".log"
+	file, _ := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
+	log.SetOutput(file)
+	log.Error(searchLog)
+}
diff --git a/pkg/common/response.go b/pkg/common/response.go
index fa002fd..2bb9ede 100644
--- a/pkg/common/response.go
+++ b/pkg/common/response.go
@@ -1,9 +1,9 @@
 package common
 
 import (
+	"encoding/json"
 	"runtime"
 	"search_server/middleware"
-	"search_server/pkg/log_report"
 	"strconv"
 	"strings"
 )
@@ -48,12 +48,15 @@ func Output(errCode int, errMsg string, data interface{}) {
 		ErrMsg:  errMsg,
 		Data:    data,
 	}
+	if errCode >= 100 {
+		SearchApiLogger(errCode, errMsg)
+	}
 	ctx := middleware.Context
 	if ctx.DefaultQuery("callback", "") != "" {
 		ctx.JSONP(200, response)
 	} else {
 		referer := ctx.Request.Referer()
-		referer = strings.TrimRight(referer,"/")
+		referer = strings.TrimRight(referer, "/")
 		ctx.Header("Access-Control-Allow-Origin", referer)
 		ctx.Header("Access-Control-Allow-Credentials", "true")
 		//允许跨站访问的站点域名
@@ -63,12 +66,13 @@ func Output(errCode int, errMsg string, data interface{}) {
 }
 
 //错误的搜索日志记录
-func SearchApiLog(code int, msg string) {
-	pc, file, line, _ := runtime.Caller(0)
+func SearchApiLogger(code int, msg string) {
+	pc, file, line, _ := runtime.Caller(2)
 	f := runtime.FuncForPC(pc)
 	ctx := middleware.Context
 	errMsg := "提示信息:" + msg + ",请求url:" + ctx.Request.URL.String()
 	lineNo := strconv.Itoa(line)
-	log_report.AnalyzeSearchError(code, ctx.ClientIP(), errMsg, file, lineNo, f.Name())
-
+	searchLog := AnalyzeSearchError(code, ctx.ClientIP(), errMsg, file, lineNo, f.Name())
+	searchLogByte, _ := json.Marshal(searchLog)
+	WriteSearchErrorLog(string(searchLogByte))
 }
diff --git a/pkg/log_report/log_report.go b/pkg/log_report/log_report.go
deleted file mode 100644
index ada82bc..0000000
--- a/pkg/log_report/log_report.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package log_report
-
-import (
-	"encoding/json"
-	log "github.com/sirupsen/logrus"
-	"os"
-)
-
-type SearchApiLog struct {
-	Msg      string
-	MsgCode  int
-	Ts       int64
-	DateStr  string
-	App      string
-	ServerIp string
-	FileName string
-	LineNo   string
-	Method   string
-}
-
-func AnalyzeSearchError(code int, ip, errMsg, file, line, method string) (log SearchApiLog) {
-	//log.Msg = "" + errMsg
-	//log.MsgCode = 1
-	//log.Ts = time.Now().Unix()
-	//log.DateStr = time.Now().Format("2006-01-02 15:04:05")
-	//log.App = "search_api"
-	//log.ServerIp = ip
-	//log.FileName = file
-	//log.LineNo = line
-	//log.Method = method
-	//
-	////还要判断是否要推送消息
-	//unitSupplierLogCode := config.Cfg.Section("UNIT_SUPPLIER_LOG_CODE").KeysHash()
-	//codeStr := strconv.Itoa(code)
-	//if unitSupplierLogCode[codeStr] == "" {
-	//	if !strings.Contains(strings.ToUpper(errMsg), "SOAP-ERROR") {
-	//		//推送到钉钉
-	//		result, err := message.DingDingPush(errMsg)
-	//		if err != nil || result.Errcode != 0 {
-	//			//logger.Errorf("%s", err, result)
-	//		}
-	//	}
-	//} else {
-	//	redisCon := gredis.Conn("search_w")
-	//	defer redisCon.Close()
-	//	key := config.Get("SEARCH_API_LOG.SEARCH_API_ERROR_PRE").String() + unitSupplierLogCode[codeStr]
-	//	redisCon.Do("INCR", key)
-	//}
-	return
-}
-
-type LogFormatter struct{}
-
-//格式详情
-func (s *LogFormatter) Format(entry *log.Entry) ([]byte, error) {
-	msg := entry.Message
-	return []byte(msg), nil
-}
-
-//写入到特定的文件夹给ELK使用的日志
-func WriteSearchErrorLog(searchLog SearchApiLog) {
-	logJson, _ := json.Marshal(searchLog)
-	// 设置日志格式为json格式
-	log.SetFormatter(new(LogFormatter))
-	//设置output,默认为stderr,可以为任何io.Writer,比如文件*os.File
-	file, _ := os.OpenFile("1.log", os.O_CREATE|os.O_WRONLY, 0666)
-	log.SetOutput(file)
-	log.Error(logJson)
-}
-
-func WriteSearchErrorLogTest(searchLog string) {
-	// 设置日志格式为json格式
-	log.SetFormatter(new(LogFormatter))
-	//设置output,默认为stderr,可以为任何io.Writer,比如文件*os.File
-	file, _ := os.OpenFile("1.log", os.O_CREATE|os.O_WRONLY, 0666)
-	log.SetOutput(file)
-	log.Error(searchLog)
-}
diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go
index 318aba2..67ea649 100644
--- a/pkg/logger/logger.go
+++ b/pkg/logger/logger.go
@@ -7,7 +7,7 @@ import (
 func SetUp() (err error) {
 	logConfig := make(map[string]string)
 	logConfig["log_path"] = "logs"
-	logConfig["log_chan_size"] = "1000"
+	logConfig["log_chan_size"] = "5"
 	err = logger.InitLogger("file", logConfig)
 	if err != nil {
 		return err
diff --git a/pkg/message/sms.go b/pkg/message/sms.go
index 4a57999..d72966b 100644
--- a/pkg/message/sms.go
+++ b/pkg/message/sms.go
@@ -3,9 +3,9 @@ package message
 import (
 	"encoding/json"
 	"fmt"
+	"github.com/syyongx/php2go"
 	"net/http"
 	"net/url"
-	"search_server/pkg/common"
 	"search_server/pkg/config"
 	"strconv"
 	"time"
@@ -25,7 +25,7 @@ func SendMessage(mobile int64, keyWord string, content map[string]interface{}) {
 			"touser":    {string(requestTel)},
 			"keyword":   {keyWord},
 			"k1":        {strconv.FormatInt(timeNow, 10)},
-			"k2":        {common.Md5(common.Md5(strconv.FormatInt(timeNow, 10)) + apiMd5Str)},
+			"k2":        {php2go.Md5(php2go.Md5(strconv.FormatInt(timeNow, 10)) + apiMd5Str)},
 			"is_ignore": {},
 		})
 
diff --git a/routes/router.go b/routes/router.go
index a930c77..afec28c 100644
--- a/routes/router.go
+++ b/routes/router.go
@@ -1,10 +1,10 @@
 package routes
 
 import (
-	"fmt"
 	"github.com/gin-gonic/gin"
 	"search_server/controller"
 	"search_server/middleware"
+	"search_server/pkg/common"
 )
 
 //初始化路由
@@ -33,7 +33,8 @@ func InitRouter() *gin.Engine {
 	r.POST("/search/get_data", controller.GetDataIndex)
 
 	r.GET("/test", func(c *gin.Context) {
-		fmt.Println(c.Query("test"))
+		common.Output(1000, "testest", nil)
 	})
+
 	return r
 }
diff --git a/test/test.go b/test/test.go
index 310b77d..1139a6c 100644
--- a/test/test.go
+++ b/test/test.go
@@ -7,7 +7,7 @@ import (
 	"github.com/syyongx/php2go"
 	"reflect"
 	"search_server/boot"
-	"search_server/controller"
+	"search_server/pkg/common"
 )
 
 func StrRandom(lenNum int) string {
@@ -47,8 +47,10 @@ func main() {
 	//fmt.Println(str)
 	//log.Error("sadsadsadsa")
 	//log.Error("sadsadsadsa")
+	//log_report.WriteSearchErrorLog("sdasdasdas")
+	common.Output(1000, "ceshiceshi", nil)
 	//log.Error("sadsadsadsa")
-	controller.GetData("LM358","arrow")
+	//controller.GetData("LM358","arrow")
 
 }