Compare commits

..

7 Commits

Author SHA1 Message Date
duanhf2012
3b10eeb792 优化日志 2024-12-16 18:00:26 +08:00
duanhf2012
e3275e9f2a 优化模块释放顺序 2024-12-11 18:31:37 +08:00
duanhf2012
16745b34f0 优化日志 2024-12-11 17:49:59 +08:00
duanhf2012
f34dc7d53f 优化日志自定义Writer 2024-12-11 17:24:06 +08:00
duanhf2012
0a09dc2fee 优化日志 2024-12-11 17:14:29 +08:00
duanhf2012
f01a93c446 优化日志 2024-12-11 17:03:21 +08:00
duanhf2012
4d2ab4ee4f 优化代码 2024-12-11 16:44:09 +08:00
4 changed files with 40 additions and 35 deletions

View File

@@ -22,11 +22,12 @@ type Logger struct {
LogLevel zapcore.Level LogLevel zapcore.Level
Encoder zapcore.Encoder Encoder zapcore.Encoder
LogConfig *lumberjack.Logger LogConfig *lumberjack.Logger
sugaredLogger *zap.SugaredLogger SugaredLogger *zap.SugaredLogger
CoreList []zapcore.Core
} }
func SetLogger(logger *Logger) { func SetLogger(logger *Logger) {
if logger != nil && isSetLogger == false { if logger != nil {
gLogger = logger gLogger = logger
isSetLogger = true isSetLogger = true
} }
@@ -95,22 +96,27 @@ func (logger *Logger) Enabled(zapcore.Level) bool {
} }
func (logger *Logger) Init() { func (logger *Logger) Init() {
var coreList []zapcore.Core if isSetLogger {
return
}
var coreList []zapcore.Core
if logger.OpenConsole == nil || *logger.OpenConsole { if logger.OpenConsole == nil || *logger.OpenConsole {
core := zapcore.NewCore(logger.Encoder, zapcore.AddSync(os.Stdout), logger.LogLevel) core := zapcore.NewCore(logger.Encoder, zapcore.AddSync(os.Stdout), logger.LogLevel)
coreList = append(coreList, core) coreList = append(coreList, core)
} }
if logger.LogPath != "" { if logger.CoreList != nil {
writeSyncer := zapcore.AddSync(logger.LogConfig) coreList = append(coreList, logger.CoreList...)
core := zapcore.NewCore(logger.Encoder, writeSyncer, logger.LogLevel) }else if logger.LogPath != "" {
WriteSyncer := zapcore.AddSync(logger.LogConfig)
core := zapcore.NewCore(logger.Encoder, WriteSyncer, logger.LogLevel)
coreList = append(coreList, core) coreList = append(coreList, core)
} }
core := zapcore.NewTee(coreList...) core := zapcore.NewTee(coreList...)
logger.Logger = zap.New(core, zap.AddCaller(), zap.AddStacktrace(logger), zap.AddCallerSkip(1+logger.Skip)) logger.Logger = zap.New(core, zap.AddCaller(), zap.AddStacktrace(logger), zap.AddCallerSkip(1+logger.Skip))
logger.sugaredLogger = logger.Logger.Sugar() logger.SugaredLogger = logger.Logger.Sugar()
} }
func (logger *Logger) Debug(msg string, fields ...zap.Field) { func (logger *Logger) Debug(msg string, fields ...zap.Field) {
@@ -170,84 +176,84 @@ func Fatal(msg string, fields ...zap.Field) {
} }
func Debugf(template string, args ...any) { func Debugf(template string, args ...any) {
gLogger.sugaredLogger.Debugf(template, args...) gLogger.SugaredLogger.Debugf(template, args...)
} }
func Infof(template string, args ...any) { func Infof(template string, args ...any) {
gLogger.sugaredLogger.Infof(template, args...) gLogger.SugaredLogger.Infof(template, args...)
} }
func Warnf(template string, args ...any) { func Warnf(template string, args ...any) {
gLogger.sugaredLogger.Warnf(template, args...) gLogger.SugaredLogger.Warnf(template, args...)
} }
func Errorf(template string, args ...any) { func Errorf(template string, args ...any) {
gLogger.sugaredLogger.Errorf(template, args...) gLogger.SugaredLogger.Errorf(template, args...)
} }
func StackErrorf(template string, args ...any) { func StackErrorf(template string, args ...any) {
gLogger.stack = true gLogger.stack = true
gLogger.sugaredLogger.Errorf(template, args...) gLogger.SugaredLogger.Errorf(template, args...)
gLogger.stack = false gLogger.stack = false
} }
func Fatalf(template string, args ...any) { func Fatalf(template string, args ...any) {
gLogger.sugaredLogger.Fatalf(template, args...) gLogger.SugaredLogger.Fatalf(template, args...)
} }
func (logger *Logger) SDebug(args ...interface{}) { func (logger *Logger) SDebug(args ...interface{}) {
logger.sugaredLogger.Debugln(args...) logger.SugaredLogger.Debugln(args...)
} }
func (logger *Logger) SInfo(args ...interface{}) { func (logger *Logger) SInfo(args ...interface{}) {
logger.sugaredLogger.Infoln(args...) logger.SugaredLogger.Infoln(args...)
} }
func (logger *Logger) SWarn(args ...interface{}) { func (logger *Logger) SWarn(args ...interface{}) {
logger.sugaredLogger.Warnln(args...) logger.SugaredLogger.Warnln(args...)
} }
func (logger *Logger) SError(args ...interface{}) { func (logger *Logger) SError(args ...interface{}) {
logger.sugaredLogger.Errorln(args...) logger.SugaredLogger.Errorln(args...)
} }
func (logger *Logger) SStackError(args ...interface{}) { func (logger *Logger) SStackError(args ...interface{}) {
gLogger.stack = true gLogger.stack = true
logger.sugaredLogger.Errorln(args...) logger.SugaredLogger.Errorln(args...)
gLogger.stack = false gLogger.stack = false
} }
func (logger *Logger) SFatal(args ...interface{}) { func (logger *Logger) SFatal(args ...interface{}) {
gLogger.stack = true gLogger.stack = true
logger.sugaredLogger.Fatalln(args...) logger.SugaredLogger.Fatalln(args...)
gLogger.stack = false gLogger.stack = false
} }
func SDebug(args ...interface{}) { func SDebug(args ...interface{}) {
gLogger.sugaredLogger.Debugln(args...) gLogger.SugaredLogger.Debugln(args...)
} }
func SInfo(args ...interface{}) { func SInfo(args ...interface{}) {
gLogger.sugaredLogger.Infoln(args...) gLogger.SugaredLogger.Infoln(args...)
} }
func SWarn(args ...interface{}) { func SWarn(args ...interface{}) {
gLogger.sugaredLogger.Warnln(args...) gLogger.SugaredLogger.Warnln(args...)
} }
func SError(args ...interface{}) { func SError(args ...interface{}) {
gLogger.sugaredLogger.Errorln(args...) gLogger.SugaredLogger.Errorln(args...)
} }
func SStackError(args ...interface{}) { func SStackError(args ...interface{}) {
gLogger.stack = true gLogger.stack = true
gLogger.sugaredLogger.Errorln(args...) gLogger.SugaredLogger.Errorln(args...)
gLogger.stack = false gLogger.stack = false
} }
func SFatal(args ...interface{}) { func SFatal(args ...interface{}) {
gLogger.stack = true gLogger.stack = true
gLogger.sugaredLogger.Fatalln(args...) gLogger.SugaredLogger.Fatalln(args...)
gLogger.stack = false gLogger.stack = false
} }

View File

@@ -230,7 +230,6 @@ func initLog() error {
localNodeInfo := cluster.GetCluster().GetLocalNodeInfo() localNodeInfo := cluster.GetCluster().GetLocalNodeInfo()
fileName := fmt.Sprintf("%s.log", localNodeInfo.NodeId) fileName := fmt.Sprintf("%s.log", localNodeInfo.NodeId)
logger.FileName = fileName logger.FileName = fileName
filepath.Join()
logger.LogConfig.Filename = filepath.Join(logger.LogPath, logger.FileName) logger.LogConfig.Filename = filepath.Join(logger.LogPath, logger.FileName)
logger.Init() logger.Init()
@@ -487,9 +486,9 @@ func setLogPath(args interface{}) error {
} }
if err != nil { if err != nil {
err = os.Mkdir(log.GetLogger().LogPath, os.ModePerm) err = os.MkdirAll(logPath, os.ModePerm)
if err != nil { if err != nil {
return errors.New("Cannot create dir " + log.GetLogger().LogPath) return errors.New("Cannot create dir " + logPath)
} }
} }

View File

@@ -125,14 +125,15 @@ func (m *Module) AddModule(module IModule) (uint32, error) {
func (m *Module) ReleaseModule(moduleId uint32) { func (m *Module) ReleaseModule(moduleId uint32) {
pModule := m.GetModule(moduleId).getBaseModule().(*Module) pModule := m.GetModule(moduleId).getBaseModule().(*Module)
//释放子孙 pModule.self.OnRelease()
log.Debug("Release module " + pModule.GetModuleName())
for i:=len(pModule.child)-1; i>=0; i-- { for i:=len(pModule.child)-1; i>=0; i-- {
m.ReleaseModule(pModule.child[i].GetModuleId()) m.ReleaseModule(pModule.child[i].GetModuleId())
} }
pModule.self.OnRelease()
pModule.GetEventHandler().Destroy() pModule.GetEventHandler().Destroy()
log.Debug("Release module " + pModule.GetModuleName())
for pTimer := range pModule.mapActiveTimer { for pTimer := range pModule.mapActiveTimer {
pTimer.Cancel() pTimer.Cancel()
} }

View File

@@ -264,12 +264,11 @@ func (s *Service) Release() {
} }
}() }()
for i:=len(s.child)-1; i>=0; i-- {
s.ReleaseModule(s.child[i].GetModuleId())
}
if atomic.AddInt32(&s.isRelease, -1) == -1 { if atomic.AddInt32(&s.isRelease, -1) == -1 {
s.self.OnRelease() s.self.OnRelease()
for i:=len(s.child)-1; i>=0; i-- {
s.ReleaseModule(s.child[i].GetModuleId())
}
} }
} }