73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/globalsign/mgo"
|
|
"github.com/globalsign/mgo/bson"
|
|
"mongo.games.com/goserver/core/logger"
|
|
)
|
|
|
|
var (
|
|
APILogDBName = "log"
|
|
APILogCollName = "log_api"
|
|
)
|
|
|
|
const (
|
|
APILogType_Login int32 = iota
|
|
APILogType_Rehold
|
|
APILogType_Logout
|
|
)
|
|
|
|
type APILog struct {
|
|
LogId bson.ObjectId `bson:"_id"`
|
|
Path string
|
|
RawQuery string
|
|
Body string
|
|
Ip string
|
|
Result string
|
|
ProcessTime int64
|
|
GetTime int64
|
|
Time time.Time
|
|
}
|
|
|
|
func NewAPILog(path, rawQuery, body, ip, result string, getTime int64, processTime int64) *APILog {
|
|
cl := &APILog{LogId: bson.NewObjectId()}
|
|
cl.Path = path
|
|
cl.RawQuery = rawQuery
|
|
cl.Body = body
|
|
cl.Ip = ip
|
|
cl.GetTime = getTime
|
|
cl.Result = result
|
|
cl.ProcessTime = processTime
|
|
cl.Time = time.Now()
|
|
return cl
|
|
}
|
|
|
|
func InsertAPILog(log *APILog) (err error) {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.InsertAPILog rpcCli == nil")
|
|
return
|
|
}
|
|
|
|
var ret bool
|
|
err = rpcCli.CallWithTimeout("APILogSvc.InsertAPILog", log, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("InsertAPILog error:", err)
|
|
}
|
|
return
|
|
}
|
|
|
|
func RemoveAPILog(ts int64) (chged *mgo.ChangeInfo, err error) {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.RemoveAPILog rpcCli == nil")
|
|
return
|
|
}
|
|
|
|
err = rpcCli.CallWithTimeout("APILogSvc.RemoveAPILog", ts, &chged, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("RemoveAPILog error:", err)
|
|
}
|
|
return
|
|
}
|