日志优化

This commit is contained in:
hahwu 2025-03-05 10:10:52 +08:00
parent 1f1381bd8b
commit ab01c7248d
2 changed files with 24 additions and 38 deletions

View File

@ -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)
}

View File

@ -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 {