调整log输出
This commit is contained in:
parent
7464b00ef8
commit
7b8585fa0e
@ -29,7 +29,7 @@ func GetServiceList(area string) ([]ServiceList, error) {
|
||||
|
||||
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
|
||||
db, _ := sql.Open("mysql", path)
|
||||
log.Printf("conn db %s", path)
|
||||
//log.Printf("conn db %s", path)
|
||||
//设置数据库最大连接数
|
||||
db.SetConnMaxLifetime(100)
|
||||
//设置上数据库最大闲置连接数
|
||||
|
@ -3,7 +3,6 @@ package mmysql
|
||||
import (
|
||||
"../config"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
//导入mysql的驱动
|
||||
@ -18,11 +17,6 @@ type ServiceStatus struct {
|
||||
Area string `json:"area"`
|
||||
}
|
||||
|
||||
func GetServiceStatus(c *ServiceStatus) bool {
|
||||
log.Println("get message from client", c)
|
||||
return true
|
||||
}
|
||||
|
||||
func clearTransaction(tx *sql.Tx) {
|
||||
err := tx.Rollback()
|
||||
if err != sql.ErrTxDone && err != nil {
|
||||
@ -30,12 +24,12 @@ func clearTransaction(tx *sql.Tx) {
|
||||
}
|
||||
}
|
||||
|
||||
func SaveServiceStatus(s []ServiceStatus) {
|
||||
func SaveServiceStatus(s []*ServiceStatus) bool {
|
||||
var myconn config.MysqlConf
|
||||
myconn.GetMysqlConn()
|
||||
path := strings.Join([]string{myconn.User, ":", myconn.Passwd, "@tcp(", myconn.Conn, ")/", "services", "?charset=utf8"}, "")
|
||||
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
|
||||
db, err := sql.Open("mysql", path)
|
||||
db, _ := sql.Open("mysql", path)
|
||||
tx, err := db.Begin()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
@ -44,19 +38,18 @@ func SaveServiceStatus(s []ServiceStatus) {
|
||||
|
||||
stmt, err := db.Prepare("INSERT INTO services_status(id, cost, status,ip,area) VALUES (?,?,?,?,?)")
|
||||
|
||||
defer stmt.Close()
|
||||
if err != nil {
|
||||
log.Panic("db prepare faild!", err)
|
||||
}
|
||||
stmtTx := tx.Stmt(stmt)
|
||||
defer stmtTx.Close()
|
||||
var rs sql.Result
|
||||
for _, row := range s {
|
||||
rs, _ = stmtTx.Exec(row.Id, row.Cost, row.Status, row.Ip, row.Area)
|
||||
}
|
||||
_ = tx.Commit()
|
||||
if n, _ := rs.RowsAffected(); n > 0 {
|
||||
fmt.Println("成功")
|
||||
log.Print("成功")
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
138
server/server.go
138
server/server.go
@ -3,72 +3,104 @@ package main
|
||||
import (
|
||||
"../cmd/mmysql"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"log"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
//"log"
|
||||
"github.com/op/go-logging"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
Info *log.Logger
|
||||
Warning *log.Logger
|
||||
Error *log.Logger
|
||||
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)
|
||||
//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 {
|
||||
log.Fatalln("打开日志文件失败:", err)
|
||||
fmt.Println(err)
|
||||
}
|
||||
backend1 := logging.NewLogBackend(logFile, "", 0)
|
||||
backend2 := logging.NewLogBackend(os.Stderr, "", 0)
|
||||
|
||||
Info = log.New(os.Stdout, "Info:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
Warning = log.New(os.Stdout, "Warning:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
Error = log.New(io.MultiWriter(os.Stderr, errFile), "Error:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
backend2Formatter := logging.NewBackendFormatter(backend2, format)
|
||||
backend1Leveled := logging.AddModuleLevel(backend1)
|
||||
backend1Leveled.SetLevel(logging.INFO, "")
|
||||
|
||||
}
|
||||
|
||||
func test_db_query() {
|
||||
//var m mmysql.ServiceList
|
||||
|
||||
vv, err := mmysql.GetServiceList("bj")
|
||||
if err != nil {
|
||||
Error.Println(err)
|
||||
log.Panic("conn mysql failed!")
|
||||
}
|
||||
jsons, errs := json.Marshal(vv)
|
||||
if errs != nil {
|
||||
Error.Println(errs.Error())
|
||||
log.Panic("conver struct failed!", vv)
|
||||
}
|
||||
Info.Println(string(jsons))
|
||||
|
||||
}
|
||||
|
||||
func test_db_insert() {
|
||||
var v3 []mmysql.ServiceStatus
|
||||
|
||||
v1 := mmysql.ServiceStatus{
|
||||
Id: 1,
|
||||
Cost: 1199,
|
||||
Ip: "192.168.100.1",
|
||||
Status: true,
|
||||
Area: "bj",
|
||||
}
|
||||
|
||||
v2 := mmysql.ServiceStatus{
|
||||
Id: 1,
|
||||
Cost: 2000,
|
||||
Ip: "192.168.100.2",
|
||||
Status: true,
|
||||
Area: "bj",
|
||||
}
|
||||
v3 = append(v3, v1)
|
||||
v3 = append(v3, v2)
|
||||
mmysql.SaveServiceStatus(v3)
|
||||
logging.SetBackend(backend1Leveled, backend2Formatter)
|
||||
}
|
||||
|
||||
func main() {
|
||||
Info.Println("run main")
|
||||
log.Info("run main")
|
||||
//test_db_query()
|
||||
test_db_insert()
|
||||
|
||||
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()
|
||||
|
||||
}
|
||||
|
47
test/test1.go
Normal file
47
test/test1.go
Normal file
@ -0,0 +1,47 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"../cmd/mmysql"
|
||||
"encoding/json"
|
||||
"log"
|
||||
)
|
||||
|
||||
func Test_db_query() {
|
||||
//var m mmysql.ServiceList
|
||||
|
||||
vv, err := mmysql.GetServiceList("bj")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
log.Panic("conn mysql failed!")
|
||||
}
|
||||
jsons, errs := json.Marshal(vv)
|
||||
if errs != nil {
|
||||
log.Println(errs.Error())
|
||||
log.Panic("conver struct failed!", vv)
|
||||
}
|
||||
log.Println(string(jsons))
|
||||
|
||||
}
|
||||
|
||||
func Test_db_insert() {
|
||||
var v3 []mmysql.ServiceStatus
|
||||
|
||||
v1 := mmysql.ServiceStatus{
|
||||
Id: 1,
|
||||
Cost: 1199,
|
||||
Ip: "192.168.100.1",
|
||||
Status: true,
|
||||
Area: "bj",
|
||||
}
|
||||
|
||||
v2 := mmysql.ServiceStatus{
|
||||
Id: 1,
|
||||
Cost: 2000,
|
||||
Ip: "192.168.100.2",
|
||||
Status: true,
|
||||
Area: "bj",
|
||||
}
|
||||
v3 = append(v3, v1)
|
||||
v3 = append(v3, v2)
|
||||
mmysql.SaveServiceStatus(v3)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user