From ab01c7248dc4fb2784076f957ac30046ac69377e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 5 Mar 2025 10:10:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 21 ++-------- .../pkg/github.com/name5566/leaf/log/log.go | 41 +++++++++---------- 2 files changed, 24 insertions(+), 38 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 5443f8d7..028a0475 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -71,8 +71,6 @@ type GameLogic struct { Mdispatr *timer.Dispatcher M_LimitActiveList []int NotInitPlayer *Player - Mlogger *log.Logger - MloggerErr error Version int32 M_SvrGlobal db.SqlSvrGlobalStruct MHttpManager *HttpManager @@ -569,7 +567,6 @@ func (ad *GameLogic) FileExist(path string) bool { func (ad *GameLogic) CreateDailyLogFile() { zero := GoUtil.ZeroTimestamp() now := time.Unix(zero, 0).Local() - filename := fmt.Sprintf("%d%02d%02d.log", now.Year(), now.Month(), @@ -578,22 +575,12 @@ func (ad *GameLogic) CreateDailyLogFile() { filepathname := conf.Server.LogPath + "/" + filename if !ad.FileExist(filepathname) { - if ad.Mlogger != nil { - ad.Mlogger.Close() + err := log.NewDailyLog(now, "Debug", conf.Server.LogPath, l.LstdFlags) + if err != nil { + fmt.Println(err) } - ad.Mlogger, ad.MloggerErr = log.NewDailyLog(now, "Debug", conf.Server.LogPath, l.LstdFlags) - if ad.MloggerErr != nil { - log.Debug(ad.MloggerErr.Error()) - return - } - log.Export(ad.Mlogger) - } else { - ad.Mlogger, ad.MloggerErr = log.BindLoggerToFile("Debug", filepathname, l.LstdFlags) - log.Export(ad.Mlogger) } - ad.Mlogger.Debug("CreateDailyLogFile") - - // Remove logs older than 15 days + log.Debug("CreateDailyLogFile") ad.RemoveOldLogs(15) } diff --git a/src/server/pkg/github.com/name5566/leaf/log/log.go b/src/server/pkg/github.com/name5566/leaf/log/log.go index 8605d3fe..dcc0e4a0 100644 --- a/src/server/pkg/github.com/name5566/leaf/log/log.go +++ b/src/server/pkg/github.com/name5566/leaf/log/log.go @@ -32,7 +32,12 @@ type Logger struct { baseFile *os.File } +var gloggerLock sync.Mutex +var gLogger, _ = New("debug", "", log.LstdFlags) + func New(strLevel string, pathname string, flag int) (*Logger, error) { + gloggerLock.Lock() + defer gloggerLock.Unlock() // level var level int switch strings.ToLower(strLevel) { @@ -53,7 +58,6 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) { var baseFile *os.File if pathname != "" { now := time.Now() - filename := fmt.Sprintf("%d%02d%02d.log", now.Year(), now.Month(), @@ -64,7 +68,6 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) { if err != nil { return nil, err } - baseLogger = log.New(file, "", flag) baseFile = file } else { @@ -80,7 +83,9 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) { return logger, nil } -func NewDailyLog(now time.Time, strLevel string, pathname string, flag int) (*Logger, error) { +func NewDailyLog(now time.Time, strLevel string, pathname string, flag int) error { + gloggerLock.Lock() + defer gloggerLock.Unlock() // level var level int switch strings.ToLower(strLevel) { @@ -93,15 +98,13 @@ func NewDailyLog(now time.Time, strLevel string, pathname string, flag int) (*Lo case "fatal": level = fatalLevel default: - return nil, errors.New("unknown level: " + strLevel) + return errors.New("unknown level: " + strLevel) } // logger var baseLogger *log.Logger var baseFile *os.File if pathname != "" { - // now := time.Now() - filename := fmt.Sprintf("%d%02d%02d.log", now.Year(), now.Month(), @@ -109,7 +112,7 @@ func NewDailyLog(now time.Time, strLevel string, pathname string, flag int) (*Lo file, err := os.Create(path.Join(pathname, filename)) if err != nil { - return nil, err + return err } baseLogger = log.New(file, "", flag) @@ -119,16 +122,16 @@ func NewDailyLog(now time.Time, strLevel string, pathname string, flag int) (*Lo } // new - logger := new(Logger) - logger.level = level - logger.baseLogger = baseLogger - logger.baseFile = baseFile + gLogger.level = level + gLogger.baseLogger = baseLogger + gLogger.baseFile = baseFile - return logger, nil + return nil } func BindLoggerToFile(strLevel string, pathName string, flag int) (*Logger, error) { - + gloggerLock.Lock() + defer gloggerLock.Unlock() var level int switch strings.ToLower(strLevel) { case "debug": @@ -153,12 +156,11 @@ func BindLoggerToFile(strLevel string, pathName string, flag int) (*Logger, erro baseLogger = log.New(file, "", flag) baseFile = file - logger := new(Logger) - logger.level = level - logger.baseLogger = baseLogger - logger.baseFile = baseFile + gLogger.level = level + gLogger.baseLogger = baseLogger + gLogger.baseFile = baseFile - return logger, nil + return gLogger, nil } // It's dangerous to call the method on logging @@ -203,9 +205,6 @@ func (logger *Logger) Fatal(format string, a ...interface{}) { logger.doPrintf(fatalLevel, printFatalLevel, format, a...) } -var gLogger, _ = New("debug", "", log.LstdFlags) -var gloggerLock sync.Mutex - // It's dangerous to call the method on logging func Export(logger *Logger) { if logger != nil {