package main import ( "../cmd/mmysql" "encoding/json" "fmt" "github.com/gin-gonic/gin" //"log" "github.com/op/go-logging" "net/http" "os" "time" ) var log = logging.MustGetLogger("example") var format = logging.MustStringFormatter( `%{color}%{time:15:04:05.000} %{shortfunc} > %{level:.4s} %{id:03x}%{color:reset} %{message}`, ) func init() { logFile, err := os.OpenFile("errors.log", os.O_WRONLY, 0666) if err != nil { fmt.Println(err) } backend1 := logging.NewLogBackend(logFile, "", 0) backend2 := logging.NewLogBackend(os.Stderr, "", 0) backend2Formatter := logging.NewBackendFormatter(backend2, format) backend1Leveled := logging.AddModuleLevel(backend1) backend1Leveled.SetLevel(logging.INFO, "") logging.SetBackend(backend1Leveled, backend2Formatter) } func main() { log.Info("run main") //test_db_query() router := gin.Default() router.GET("/healcheck", func(c *gin.Context) { // 使用结构体 var msg struct { Name string `json:"user"` Message string } msg.Name = "kingsome" msg.Message = "Hello world!" c.JSON(http.StatusOK, msg) }) router.GET("/servicelist", func(c *gin.Context) { area := c.DefaultQuery("area", "bj") vv, err := mmysql.GetServiceList(area) if err != nil { log.Error(err) } //jsons, errs := json.Marshal(vv) //log.Info(string(jsons)) //if errs != nil { // log.Error(errs.Error()) //} //body := bytes.NewBuffer(jsons) c.JSON(http.StatusOK, vv) }) router.POST("/servicestatus", func(c *gin.Context) { //data=[{"id":1,"cost":1199,"ip":"192.168.100.2","status":true,"area":"bj"},{"id":2,"cost":1199,"ip":"192.168.100.3","status":true,"area":"bj"}] data := c.PostForm("data") log.Info(data) var vv []*mmysql.ServiceStatus err := json.Unmarshal([]byte(data), &vv) if err != nil { log.Error(err) c.JSON(500, "failed") } status := mmysql.SaveServiceStatus(vv) if status != false { c.JSON(http.StatusOK, "success") } else { c.JSON(500, "failed") } }) s := &http.Server{ Addr: ":8000", Handler: router, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } s.ListenAndServe() }