package utils import ( "fmt" "log" "os" ) // Logger 日志结构体 type Logger struct { infoLogger *log.Logger errorLogger *log.Logger } var logger *Logger // InitLogger 初始化日志组件 func InitLogger() { // 创建日志文件 file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatalln("无法创建日志文件:", err) } // 初始化日志记录器 logger = &Logger{ infoLogger: log.New(file, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile), errorLogger: log.New(file, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile), } } // Info 记录信息日志 func Info(v ...interface{}) { if logger != nil { logger.infoLogger.Println(v...) } else { log.Println("[INFO]", fmt.Sprint(v...)) } } // Error 记录错误日志 func Error(v ...interface{}) { if logger != nil { logger.errorLogger.Println(v...) } else { log.Println("[ERROR]", fmt.Sprint(v...)) } } // Infof 记录格式化信息日志 func Infof(format string, v ...interface{}) { if logger != nil { logger.infoLogger.Printf(format, v...) } else { log.Printf("[INFO] "+format, v...) } } // Errorf 记录格式化错误日志 func Errorf(format string, v ...interface{}) { if logger != nil { logger.errorLogger.Printf(format, v...) } else { log.Printf("[ERROR] "+format, v...) } }