package cherryApp import ( "fmt" clog "github.com/cherry-game/cherry/logger" "github.com/cherry-game/cherry/net/parser/pomelo" "go.uber.org/zap/zapcore" ) // actor专属日志打印 type ActorLogger struct { pomelo.ActorBase logger *clog.CherryLogger // logger prefix string // logger prefix } func NewLoggerPrefix(prefixKey, prefixValue interface{}) ActorLogger { return ActorLogger{ logger: clog.DefaultLogger, prefix: fmt.Sprintf("[%s = %v] ", prefixKey, prefixValue), } } func NewLogger(logger *clog.CherryLogger, prefix string) ActorLogger { return ActorLogger{ logger: logger, prefix: prefix, } } func (p *ActorLogger) SetPrefix(prefix string) { p.prefix = prefix } func (p *ActorLogger) Destory() { p.logger = nil } func (p *ActorLogger) Debug(template string, args ...interface{}) { if !clog.PrintLevel(zapcore.DebugLevel) { return } if len(args) > 0 { p.logger.Debug(p.prefix, fmt.Sprintf(template, args...)) } else { p.logger.Debug(p.prefix, template) } } func (p *ActorLogger) Info(template string, args ...interface{}) { if !clog.PrintLevel(zapcore.InfoLevel) { return } if len(args) > 0 { p.logger.Info(p.prefix, fmt.Sprintf(template, args...)) } else { p.logger.Info(p.prefix, template) } } func (p *ActorLogger) Warn(template string, args ...interface{}) { if !clog.PrintLevel(zapcore.WarnLevel) { return } if len(args) > 0 { p.logger.Warn(p.prefix, fmt.Sprintf(template, args...)) } else { p.logger.Warn(p.prefix, template) } } func (p *ActorLogger) Error(template string, args ...interface{}) { if !clog.PrintLevel(zapcore.ErrorLevel) { return } if len(args) > 0 { p.logger.Error(p.prefix, fmt.Sprintf(template, args...)) } else { p.logger.Error(p.prefix, template) } }