107 lines
2.5 KiB
Go
107 lines
2.5 KiB
Go
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() {
|
|
//errFile, err := os.OpenFile("errors.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
|
//if err != nil {
|
|
// panic(err)
|
|
//}
|
|
//defer errFile.Close()
|
|
//log.SetFlags(log.Ldate|log.Lshortfile)
|
|
//log.SetOutput(io.MultiWriter(os.Stdout, errFile))
|
|
////log := log.New(io.MultiWriter(os.Stderr, errFile), "前缀", log.Ldate|log.Ltime|log.Lshortfile)
|
|
|
|
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())
|
|
}
|
|
c.JSON(http.StatusOK, string(jsons))
|
|
|
|
})
|
|
|
|
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()
|
|
|
|
}
|