From 489ab8e5d1eb11f85e676658242fcc2fa1e6f960 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 1 Feb 2023 10:02:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lego/sys/log/flieout.go | 75 +++++++++++++++++++++++++++-------------- lego/sys/log/logger.go | 1 + lego/sys/log/options.go | 8 +++++ 3 files changed, 58 insertions(+), 26 deletions(-) diff --git a/lego/sys/log/flieout.go b/lego/sys/log/flieout.go index db40c42d9..2b30065bc 100644 --- a/lego/sys/log/flieout.go +++ b/lego/sys/log/flieout.go @@ -35,6 +35,7 @@ type LogFileOut struct { MaxBackups int `json:"maxbackups" yaml:"maxbackups"` //备份日志的最大数量 LocalTime bool `json:"localtime" yaml:"localtime"` //是使用本地时间还是使用世界标准时间 Compress bool `json:"compress" yaml:"compress"` //是否压缩备份日志 + UniqueLog bool `json:"uniquelog" yaml:"uniquelog"` //是否唯一日志文件 size int64 ctime time.Time file *os.File @@ -79,31 +80,42 @@ func (l *LogFileOut) Write(p []byte) (n int, err error) { return n, err } -func (l *LogFileOut) openExistingOrNew(writeLen int) error { - l.mill() +func (this *LogFileOut) openExistingOrNew(writeLen int) error { + this.mill() - filename := l.filename() + filename := this.filename() info, err := osStat(filename) if os.IsNotExist(err) { - return l.openNew() + return this.openNew() } if err != nil { return fmt.Errorf("error getting log file info: %s", err) } //校验是否需要切割日志 - if info.Size()+int64(writeLen) >= l.max() || (!l.ctime.IsZero() && time.Since(l.ctime) > l.CupTime) { - return l.rotate() + if !this.UniqueLog && (info.Size()+int64(writeLen) >= this.max() || (!this.ctime.IsZero() && time.Since(this.ctime) > this.CupTime)) { + return this.rotate() } - - file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) - if err != nil { - // if we fail to open the old log file for some reason, just ignore - // it and open a new log file. - return l.openNew() + mode := os.FileMode(0666) + if !this.UniqueLog { + file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) + if err != nil { + // if we fail to open the old log file for some reason, just ignore + // it and open a new log file. + return this.openNew() + } + this.file = file + this.size = info.Size() + } else { + //最佳写入 + f, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, mode) + if err != nil { + return fmt.Errorf("can't open new logfile: %s", err) + } + this.file = f + this.size = 0 + this.ctime = currentTime() } - l.file = file - l.size = info.Size() return nil } @@ -210,21 +222,21 @@ func (l *LogFileOut) mill() { } //备份老的日志文件创建新的日志文件 -func (l *LogFileOut) openNew() error { - err := os.MkdirAll(l.dir(), 0755) +func (this *LogFileOut) openNew() error { + err := os.MkdirAll(this.dir(), 0755) if err != nil { return fmt.Errorf("can't make directories for new logfile: %s", err) } - name := l.filename() + name := this.filename() mode := os.FileMode(0666) info, err := osStat(name) //备份老的日志文件 - if err == nil { + if !this.UniqueLog && err == nil { // Copy the mode off the old logfile. mode = info.Mode() // move the existing file - newname := backupName(name, l.LocalTime) + newname := backupName(name, this.LocalTime) if err := os.Rename(name, newname); err != nil { return fmt.Errorf("can't rename log file: %s", err) } @@ -235,14 +247,25 @@ func (l *LogFileOut) openNew() error { } } - //创建新的日志文件 - f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) - if err != nil { - return fmt.Errorf("can't open new logfile: %s", err) + if !this.UniqueLog { + //创建新的日志文件 + f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) + if err != nil { + return fmt.Errorf("can't open new logfile: %s", err) + } + this.file = f + this.size = 0 + this.ctime = currentTime() + } else { + //最佳写入 + f, err := os.OpenFile(name, os.O_APPEND|os.O_CREATE|os.O_WRONLY, mode) + if err != nil { + return fmt.Errorf("can't open new logfile: %s", err) + } + this.file = f + this.size = 0 + this.ctime = currentTime() } - l.file = f - l.size = 0 - l.ctime = currentTime() return nil } diff --git a/lego/sys/log/logger.go b/lego/sys/log/logger.go index f7e5d3da0..453141f28 100644 --- a/lego/sys/log/logger.go +++ b/lego/sys/log/logger.go @@ -17,6 +17,7 @@ func newSys(options *Options) (sys *Logger, err error) { MaxBackups: options.MaxBackups, //最大备份数 MaxSize: options.MaxSize, //最大日志文件大小 LocalTime: true, //使用本地时间 + UniqueLog: options.UniqueLog, //是否唯一文件 } if !options.IsDebug { if err = hook.openNew(); err != nil { diff --git a/lego/sys/log/options.go b/lego/sys/log/options.go index ea07c84ad..2d1296566 100644 --- a/lego/sys/log/options.go +++ b/lego/sys/log/options.go @@ -22,6 +22,7 @@ type Options struct { ReportCaller Loglevel //是否输出堆栈信息 CallerSkip int //堆栈深度 Encoder LogEncoder //日志输出样式 + UniqueLog bool //唯一日志文件(文件不分割 不备份,一直追加日志) CupTimeTime int //日志分割时间 单位 小时 MaxAgeTime int //日志最大保存时间 单位天 MaxBackups int //最大备份日志个数 @@ -75,6 +76,13 @@ func SetEncoder(v LogEncoder) Option { } } +///设置唯一日志 +func SetUniqueLog(v bool) Option { + return func(o *Options) { + o.UniqueLog = v + } +} + ///日志分割时间 单位 小时 func SetRotationTime(v int) Option { return func(o *Options) { From 82c4fc443e5fb8c2bb4cac39a3c5dc102fb1ac3d Mon Sep 17 00:00:00 2001 From: liwei Date: Wed, 1 Feb 2023 10:05:48 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_opencond.json | 228 ------------------------------------ 1 file changed, 228 deletions(-) diff --git a/bin/json/game_opencond.json b/bin/json/game_opencond.json index 19d7d8a83..2f31504c2 100644 --- a/bin/json/game_opencond.json +++ b/bin/json/game_opencond.json @@ -9,10 +9,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -35,10 +31,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -61,10 +53,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -87,10 +75,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -113,10 +97,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -139,10 +119,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -165,10 +141,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -191,10 +163,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -217,10 +185,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -243,10 +207,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -269,10 +229,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -295,10 +251,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -321,10 +273,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -347,10 +295,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -373,10 +317,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -399,10 +339,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -425,10 +361,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -451,10 +383,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -477,10 +405,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -503,10 +427,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -529,10 +449,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -555,10 +471,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -581,10 +493,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -607,10 +515,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -633,10 +537,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -659,10 +559,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -685,10 +581,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -711,10 +603,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -759,10 +647,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -785,10 +669,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -811,10 +691,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -837,10 +713,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -863,10 +735,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -889,10 +757,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -915,10 +779,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -941,10 +801,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -967,10 +823,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -993,10 +845,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1019,10 +867,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1045,10 +889,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1071,10 +911,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1097,10 +933,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1123,10 +955,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1149,10 +977,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1175,10 +999,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1201,10 +1021,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1293,10 +1109,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1319,10 +1131,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1345,10 +1153,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1371,10 +1175,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1397,10 +1197,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1423,10 +1219,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1449,10 +1241,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1475,10 +1263,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1501,10 +1285,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1527,10 +1307,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", @@ -1553,10 +1329,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1 } ], "optional": "", From b948869ebbc4b99e74e4ced11e5b012841b76d7c Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 1 Feb 2023 10:12:05 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96cmd=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/cmd/main.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/cmd/main.go b/services/cmd/main.go index 5067de701..cc347f900 100644 --- a/services/cmd/main.go +++ b/services/cmd/main.go @@ -88,7 +88,8 @@ func main() { if err := log.OnInit(nil, log.SetFileName("./s.log"), log.SetLoglevel(log.DebugLevel), - log.SetIsDebug(true)); err != nil { + log.SetUniqueLog(true), + log.SetIsDebug(false)); err != nil { panic(fmt.Sprintf("Sys log Init err:%v", err)) } else { log.Infof("Sys log Init success !") @@ -341,6 +342,7 @@ func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip str "IsDebug": false, "Loglevel": log.InfoLevel, "MaxAgeTime": 7, + "UniqueLog": true, } }