game_sync/model/apilog.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
}