日志优化
This commit is contained in:
parent
1782094f92
commit
50c42e705d
@ -1,5 +1,5 @@
|
||||
{
|
||||
"AppID": 1,
|
||||
"AppID": 0,
|
||||
"LogLevel": "debug",
|
||||
"LogPath": "./log",
|
||||
"TCPAddr": ":3601",
|
||||
@ -9,7 +9,7 @@
|
||||
"MySqlUsr": "root",
|
||||
"MySqlPwd": "IOagNEq3C84c-20CmHEin5iODVc=",
|
||||
"MaxConnNum": 20000,
|
||||
"DbName": "Merge_Pet_1",
|
||||
"DbName": "merge_pet_1",
|
||||
"HttpPort": ":8081",
|
||||
"AppPath": "./app",
|
||||
"TELOGDIR" : "./teLog/",
|
||||
|
||||
@ -197,6 +197,7 @@ func HandleClientReq(args []interface{}) {
|
||||
default:
|
||||
p, ok := internal.Agents.Load(a)
|
||||
if ok && p != G_GameLogicPtr.NotInitPlayer {
|
||||
now := time.Now().UnixMilli()
|
||||
p.(*Player).lock.Lock() //加锁
|
||||
backup := p.(*Player).BackUp() // 备份当前的 Player 值
|
||||
defer func() {
|
||||
@ -217,6 +218,10 @@ func HandleClientReq(args []interface{}) {
|
||||
return
|
||||
}
|
||||
p.(*Player).ProcessTrigger()
|
||||
execTime := time.Now().UnixMilli() - now
|
||||
if execTime > int64(1) {
|
||||
log.Warn("uid : %d, func : %s, execTime : %d ms", p.(*Player).M_DwUin, m.GetFunc(), execTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
p, b := internal.Agents.Load(a)
|
||||
|
||||
@ -197,6 +197,7 @@ func (L *LogMgr) InitManager() {
|
||||
}
|
||||
|
||||
func (L *LogMgr) AddLog(logs *Log) {
|
||||
return
|
||||
// 复制结构体和 Param map,避免并发修改导致 json.Marshal 时 panic
|
||||
copyLog := *logs
|
||||
|
||||
|
||||
@ -41,6 +41,12 @@ func (d *Decorate) InitData() {
|
||||
if len(d.PartCost) == 0 {
|
||||
d.initPartCost(d.AreaId)
|
||||
}
|
||||
for k := range d.PartCost {
|
||||
AreaId := decorateCfg.GetAreaId(k)
|
||||
if AreaId != d.AreaId {
|
||||
delete(d.PartCost, k)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 装饰
|
||||
@ -156,9 +162,16 @@ func (d *Decorate) DecorateAll(Star int, DecorateOffIsExist bool) ([]*item.Item,
|
||||
d.Progress = 0
|
||||
d.FinishList = make(map[int]struct{})
|
||||
}
|
||||
for k := range d.PartCost {
|
||||
AreaId := decorateCfg.GetAreaId(k)
|
||||
if AreaId != d.AreaId {
|
||||
delete(d.PartCost, k)
|
||||
}
|
||||
}
|
||||
if len(d.PartCost) == 0 {
|
||||
d.initPartCost(d.AreaId)
|
||||
}
|
||||
|
||||
SubItems = append(SubItems, item.NewItem(item.ITEM_STAR_ID, SubItem))
|
||||
return SubItems, AddItem, Num, DecorateList, Log, PetExp
|
||||
}
|
||||
|
||||
@ -1063,7 +1063,8 @@ func (p *Player) TeLog(Type string, Param map[string]interface{}) {
|
||||
//Param["#zone_offset"] = -5
|
||||
// 游戏内TE日志
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
go telog.Te.Track(BaseMod.Account, BaseMod.Account, Type, Param)
|
||||
UidStr := GoUtil.String(p.M_DwUin)
|
||||
go telog.Te.Track(BaseMod.Account, UidStr, Type, Param)
|
||||
//途游GA
|
||||
go ga.GAlogEvent(Type, BaseMod.Account, "", Param)
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ const (
|
||||
releaseLevel = 1
|
||||
errorLevel = 2
|
||||
fatalLevel = 3
|
||||
|
||||
warnLevel = 4
|
||||
DEBUG_LEVEL = 0
|
||||
)
|
||||
|
||||
@ -27,6 +27,7 @@ const (
|
||||
printReleaseLevel = "[release] "
|
||||
printErrorLevel = "[error ] "
|
||||
printFatalLevel = "[fatal ] "
|
||||
printWarnLevel = "[warn ] "
|
||||
)
|
||||
|
||||
type Logger struct {
|
||||
@ -52,6 +53,8 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) {
|
||||
level = errorLevel
|
||||
case "fatal":
|
||||
level = fatalLevel
|
||||
case "warn":
|
||||
level = warnLevel
|
||||
default:
|
||||
return nil, errors.New("unknown level: " + strLevel)
|
||||
}
|
||||
@ -100,6 +103,8 @@ func NewDailyLog(now time.Time, Level int, pathname string, flag int) error {
|
||||
level = errorLevel
|
||||
case fatalLevel:
|
||||
level = fatalLevel
|
||||
case warnLevel:
|
||||
level = warnLevel
|
||||
default:
|
||||
return fmt.Errorf("unknown level: %d", Level)
|
||||
}
|
||||
@ -145,6 +150,8 @@ func BindLoggerToFile(strLevel string, pathName string, flag int) (*Logger, erro
|
||||
level = errorLevel
|
||||
case "fatal":
|
||||
level = fatalLevel
|
||||
case "warn":
|
||||
level = warnLevel
|
||||
default:
|
||||
return nil, errors.New("unknown level: " + strLevel)
|
||||
}
|
||||
@ -207,6 +214,9 @@ func (logger *Logger) Error(format string, a ...interface{}) {
|
||||
func (logger *Logger) Fatal(format string, a ...interface{}) {
|
||||
logger.doPrintf(fatalLevel, printFatalLevel, format, a...)
|
||||
}
|
||||
func (logger *Logger) Warn(format string, a ...interface{}) {
|
||||
logger.doPrintf(warnLevel, printWarnLevel, format, a...)
|
||||
}
|
||||
|
||||
// It's dangerous to call the method on logging
|
||||
func Export(logger *Logger) {
|
||||
@ -235,6 +245,15 @@ func Release(format string, a ...interface{}) {
|
||||
gLogger.doPrintf(releaseLevel, printReleaseLevel, format, a...)
|
||||
}
|
||||
|
||||
func Warn(format string, a ...interface{}) {
|
||||
gloggerLock.Lock()
|
||||
defer gloggerLock.Unlock()
|
||||
if gLogger == nil {
|
||||
return
|
||||
}
|
||||
gLogger.doPrintf(warnLevel, printWarnLevel, format, a...)
|
||||
}
|
||||
|
||||
func Error(format string, a ...interface{}) {
|
||||
gloggerLock.Lock()
|
||||
defer gloggerLock.Unlock()
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
"AppID": 1,
|
||||
"AppID": 0,
|
||||
"LogLevel": "debug",
|
||||
"LogPath": "./log",
|
||||
"TCPAddr": ":3601",
|
||||
@ -9,7 +9,7 @@
|
||||
"MySqlUsr": "root",
|
||||
"MySqlPwd": "IOagNEq3C84c-20CmHEin5iODVc=",
|
||||
"MaxConnNum": 20000,
|
||||
"DbName": "Merge_Pet_1",
|
||||
"DbName": "merge_pet_1",
|
||||
"HttpPort": ":8081",
|
||||
"AppPath": "./app",
|
||||
"TELOGDIR" : "./teLog/",
|
||||
|
||||
@ -2,6 +2,7 @@ package test
|
||||
|
||||
import (
|
||||
"server/game"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@ -19,3 +20,30 @@ func TestFixDecorate(t *testing.T) {
|
||||
DecorateMod.Progress = 22
|
||||
p.FixDecorate()
|
||||
}
|
||||
|
||||
func TestFixUserData(t *testing.T) {
|
||||
log.Warn("hello world")
|
||||
// type account struct {
|
||||
// Account string `db:"user_name"`
|
||||
// }
|
||||
// var accounts []account
|
||||
// err := db.SqlDb.Select(&accounts, "SELECT `user_name` FROM t_account ")
|
||||
// if err != nil {
|
||||
// t.Errorf("Failed to fetch accounts: %v", err)
|
||||
// return
|
||||
// }
|
||||
// for _, acc := range accounts {
|
||||
// p := new(game.Player)
|
||||
// p.InitPlayer(acc.Account)
|
||||
// DecorateMod := p.GetDecorateMod()
|
||||
// if DecorateMod.PartCost == nil {
|
||||
// continue
|
||||
// }
|
||||
// for k := range DecorateMod.PartCost {
|
||||
// AreaId := decorateCfg.GetAreaId(k)
|
||||
// if AreaId != DecorateMod.AreaId {
|
||||
// fmt.Printf("Fixing account: %s, PartId: %d, OldAreaId: %d, NewAreaId: %d\n", acc.Account, k, AreaId, DecorateMod.AreaId)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user