feat(log): 重构日志初始化逻辑并修复文件路径重复创建问题
- 将init函数重命名为Init以支持手动调用 - 添加filePath全局变量存储日志文件路径 - 在Init函数中检查日志文件是否存在,避免重复创建 - 在Info、Error、Warn、Debug函数中调用Init确保日志系统正确初始化 - 保持原有的日志格式化和颜色输出功能main v1.0.1017
parent
6805772746
commit
ca82c166d0
|
|
@ -1 +0,0 @@
|
|||
package log
|
||||
16
log/log.go
16
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...))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue