Browse Source

Merge branch 'dev2.1' of ssh://192.168.3.207:10022/qmx/qfw into dev2.1

wangchuanjin 7 years ago
parent
commit
05a76d3923

+ 5 - 1
common/src/github.com/donnie4w/go-logger/logger/logw.go

@@ -221,7 +221,11 @@ func (this *logBean) console(v ...interface{}) {
 
 func (this *logBean) log(level string, v ...interface{}) {
 	defer catchError()
-	s := fmt.Sprint(v...)
+	//s := fmt.Sprint(v...)
+	s := ""
+	for _, val := range v {
+		s += " " + fmt.Sprint(val)
+	}
 	length := len([]byte(s))
 	var lg *fileBean = fbf.get(this.id)
 	var _level = ALL

+ 10 - 0
common/src/qfw/util/common.go

@@ -9,6 +9,7 @@ import (
 	"io"
 	"log"
 	"math"
+	"math/big"
 	mathRand "math/rand"
 	"net/url"
 	"regexp"
@@ -239,6 +240,9 @@ func Int64All(num interface{}) int64 {
 		return int64(i5)
 	} else if i6, ok6 := num.(int8); ok6 {
 		return int64(i6)
+	} else if i7, ok7 := num.(*big.Int); ok7 {
+		in, _ := strconv.ParseInt(fmt.Sprint(i7), 10, 64)
+		return int64(in)
 	} else {
 		return 0
 	}
@@ -272,6 +276,9 @@ func Float64All(num interface{}) float64 {
 		return float64(i6)
 	} else if i6, ok6 := num.(uint64); ok6 {
 		return float64(i6)
+	} else if i7, ok7 := num.(*big.Float); ok7 {
+		in, _ := strconv.ParseFloat(fmt.Sprint(i7), 64)
+		return float64(in)
 	} else {
 		return 0
 	}
@@ -295,6 +302,9 @@ func IntAllDef(num interface{}, defaultNum int) int {
 		return int(i5)
 	} else if i6, ok6 := num.(int8); ok6 {
 		return int(i6)
+	} else if i7, ok7 := num.(*big.Int); ok7 {
+		in, _ := strconv.Atoi(fmt.Sprint(i7))
+		return int(in)
 	} else {
 		return defaultNum
 	}

+ 4 - 0
core/src/config.json

@@ -8,6 +8,10 @@
     "elasticPoolSize": 30,
     "mongodbPoolSize": 5,
     "mongodbName": "qfw",
+	"cassandra": [
+        "192.168.3.18"
+    ],
+    "cassandrasize":5,
     "smtp": {
         "addr": "smtp.exmail.qq.com",
         "port": 465,

+ 4 - 0
core/src/main.go

@@ -37,6 +37,7 @@ import (
 	_ "qfw/yellowpage"
 	"runtime"
 	"time"
+	ca "ucbsutil/cassandra"
 
 	"github.com/go-xweb/xweb"
 )
@@ -52,6 +53,9 @@ func init() {
 	} else {
 		util.ReadConfig(configfile, &SysConfig)
 	}
+	//初始化cassandra
+	ca.InitCassandra("jianyu", SysConfig.Cassandrasize, SysConfig.Cassandra)
+
 	//mongodb初始化
 	//util.MongodbAddr = SysConfig.Mongodbservers
 	mongodb.InitMongodbPool(SysConfig.MongodbPoolSize, SysConfig.Mongodbservers, SysConfig.MongodbName)

+ 2 - 0
core/src/qfw/coreconfig/SysConfig.go

@@ -11,6 +11,8 @@ type config struct {
 	Mongodbservers     string                 `json:"mongodbServers"` //mongodb节点
 	MongodbPoolSize    int                    `json:"mongodbPoolSize"`
 	MongodbName        string                 `json:"mongodbName"`
+	Cassandra          []string               `json:"cassandra"`
+	Cassandrasize      int                    `json:"cassandrasize"`
 	Elasticsearch      string                 `json:"elasticsearch"`
 	JyEscsearch        string                 `json:"jyescsearch"` //content内容
 	Smtp               smtp                   `json:"smtp"`

+ 35 - 23
core/src/qfw/filter/logfilter.go

@@ -7,13 +7,18 @@
 package filter
 
 import (
-	"github.com/go-xweb/xweb"
 	"net"
 	"net/http"
 	"qfw/util/mongodb"
 	"strings"
 	"sync"
 	"time"
+
+	"encoding/json"
+	uc "ucbsutil"
+	ca "ucbsutil/cassandra"
+
+	"github.com/go-xweb/xweb"
 )
 
 //日志过滤器
@@ -60,38 +65,45 @@ func addLog(l *logfilter, w http.ResponseWriter, req *http.Request) {
 			})
 		}()
 	}
-
+	md, _ := json.Marshal(req.Form)
+	str := string(md)
 	logs := map[string]interface{}{
-		"l_date":     date,
-		"s_ip":       req.Proto,
-		"s_refer":    req.Referer(),
-		"i_year":     timeNow.Year(),
-		"i_month":    timeNow.Month(),
-		"i_day":      timeNow.Day(),
-		"i_hour":     timeNow.Hour(),
-		"i_minutes":  timeNow.Minute(),
-		"s_describe": req.Form,
-		"s_client":   agent,
-		"s_os":       GetOS(agent),
-		"s_browse":   GetBrowse(agent),
-		"s_method":   req.Method,
-		"s_url":      s_url,
+		"id":        uc.DayShortTime(),
+		"date":      date,
+		"ip":        req.Proto,
+		"refer":     req.Referer(),
+		"year":      timeNow.Year(),
+		"month":     timeNow.Month(),
+		"day":       timeNow.Day(),
+		"hour":      timeNow.Hour(),
+		"minutes":   timeNow.Minute(),
+		"mdescribe": str,
+		"client":    agent,
+		"os":        GetOS(agent),
+		"browse":    GetBrowse(agent),
+		"method":    req.Method,
+		"url":       s_url,
 	}
 	if hasSession {
-		logs["s_userid"] = session.Get("userId")
-		logs["s_username"] = userName
-		logs["i_usertype"] = session.Get("userType")
-		logs["s_nickName"] = session.Get("nickName")
-		logs["s_loginName"] = session.Get("loginName")
-		logs["s_loginType"] = session.Get("loginType")
+		logs["uid"] = session.Get("userId")
+		logs["uname"] = userName
+		logs["utype"] = session.Get("userType")
+		logs["nick"] = session.Get("nickName")
+		logs["loginn"] = session.Get("loginName")
+		logs["logint"] = session.Get("loginType")
 	}
 	lock.Lock()
 	arr = append(arr, logs)
 	if len(arr) >= nc {
-		tmp := arr
+		/*tmp := arr
 		arr = make([]map[string]interface{}, 0)
 		go func() {
 			mongodb.SaveBulk("logs", tmp...)
+		}()*/
+		tmp := arr
+		arr = make([]map[string]interface{}, 0)
+		go func() {
+			ca.SaveBatch("qfw_logs", tmp)
 		}()
 	}
 	lock.Unlock()