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 (
|
var (
|
||||||
logPath string
|
logPath string
|
||||||
sysLog *log.Logger
|
sysLog *log.Logger
|
||||||
|
filePath string
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
@ -59,9 +60,12 @@ func (w *logWriter) Write(p []byte) (n int, err error) {
|
||||||
return len(p), nil
|
return len(p), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func Init() {
|
||||||
logPath = gfile.Join(gfile.Pwd(), "logs")
|
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{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: filePath,
|
Filename: filePath,
|
||||||
MaxSize: 2, // 单个文件最大 10MB
|
MaxSize: 2, // 单个文件最大 10MB
|
||||||
|
|
@ -78,19 +82,23 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func Info(v ...any) {
|
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.SetPrefix(fmt.Sprintf("[%s] %s[INFO]%s ", time.Now().Format("2006-01-02 15:04:05"), Green, Reset))
|
||||||
sysLog.Println(fmt.Sprint(v...))
|
sysLog.Println(fmt.Sprint(v...))
|
||||||
}
|
}
|
||||||
func Error(v ...any) {
|
func Error(v ...any) {
|
||||||
|
Init()
|
||||||
sysLog.SetPrefix(fmt.Sprintf("[%s] %s[ERROR]%s ", time.Now().Format("2006-01-02 15:04:05"), Red, Reset))
|
sysLog.SetPrefix(fmt.Sprintf("[%s] %s[ERROR]%s ", time.Now().Format("2006-01-02 15:04:05"), Red, Reset))
|
||||||
msg := fmt.Sprint(v...)
|
msg := fmt.Sprint(v...)
|
||||||
sysLog.Println(msg, strings.TrimSpace(string(debug.Stack())))
|
sysLog.Println(msg, strings.TrimSpace(string(debug.Stack())))
|
||||||
}
|
}
|
||||||
func Warn(v ...any) {
|
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.SetPrefix(fmt.Sprintf("[%s] %s[WARN]%s ", time.Now().Format("2006-01-02 15:04:05"), Yellow, Reset))
|
||||||
sysLog.Println(fmt.Sprint(v...))
|
sysLog.Println(fmt.Sprint(v...))
|
||||||
}
|
}
|
||||||
func Debug(v ...any) {
|
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.SetPrefix(fmt.Sprintf("[%s] %s[DEBUG]%s ", time.Now().Format("2006-01-02 15:04:05"), Blue, Reset))
|
||||||
sysLog.Println(fmt.Sprint(v...))
|
sysLog.Println(fmt.Sprint(v...))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue