From ca82c166d0100ff1a1af9ef3f11a7d21f79858ae Mon Sep 17 00:00:00 2001 From: maguodong Date: Sat, 28 Mar 2026 09:08:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(log):=20=E9=87=8D=E6=9E=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=88=9D=E5=A7=8B=E5=8C=96=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=88=9B=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将init函数重命名为Init以支持手动调用 - 添加filePath全局变量存储日志文件路径 - 在Init函数中检查日志文件是否存在,避免重复创建 - 在Info、Error、Warn、Debug函数中调用Init确保日志系统正确初始化 - 保持原有的日志格式化和颜色输出功能 --- log/index.go | 1 - log/log.go | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) delete mode 100644 log/index.go diff --git a/log/index.go b/log/index.go deleted file mode 100644 index 7330d54..0000000 --- a/log/index.go +++ /dev/null @@ -1 +0,0 @@ -package log diff --git a/log/log.go b/log/log.go index d868db0..f81da3b 100644 --- a/log/log.go +++ b/log/log.go @@ -16,8 +16,9 @@ import ( ) var ( - logPath string - sysLog *log.Logger + logPath string + sysLog *log.Logger + filePath string ) const ( @@ -59,9 +60,12 @@ func (w *logWriter) Write(p []byte) (n int, err error) { return len(p), nil } -func init() { +func Init() { logPath = gfile.Join(gfile.Pwd(), "logs") - filePath := gfile.Join(logPath, fmt.Sprintf("log-%s.log", gtime.Date())) + filePath = gfile.Join(logPath, fmt.Sprintf("log-%s.log", gtime.Date())) + if gfile.Exists(filePath) { + return + } fileLogger := &lumberjack.Logger{ Filename: filePath, MaxSize: 2, // 单个文件最大 10MB @@ -78,19 +82,23 @@ func init() { } func Info(v ...any) { + Init() sysLog.SetPrefix(fmt.Sprintf("[%s] %s[INFO]%s ", time.Now().Format("2006-01-02 15:04:05"), Green, Reset)) sysLog.Println(fmt.Sprint(v...)) } func Error(v ...any) { + Init() sysLog.SetPrefix(fmt.Sprintf("[%s] %s[ERROR]%s ", time.Now().Format("2006-01-02 15:04:05"), Red, Reset)) msg := fmt.Sprint(v...) sysLog.Println(msg, strings.TrimSpace(string(debug.Stack()))) } func Warn(v ...any) { + Init() sysLog.SetPrefix(fmt.Sprintf("[%s] %s[WARN]%s ", time.Now().Format("2006-01-02 15:04:05"), Yellow, Reset)) sysLog.Println(fmt.Sprint(v...)) } func Debug(v ...any) { + Init() sysLog.SetPrefix(fmt.Sprintf("[%s] %s[DEBUG]%s ", time.Now().Format("2006-01-02 15:04:05"), Blue, Reset)) sysLog.Println(fmt.Sprint(v...)) }