package services import ( "fmt" "log" "os" "path/filepath" "time" ) var logDir string func init() { // 设置日志目录 exePath, err := os.Executable() if err != nil { logDir = "./Log" } else { logDir = filepath.Join(filepath.Dir(exePath), "Log") } os.MkdirAll(logDir, 0755) } // LogInfo 记录信息日志 func LogInfo(message string) { logMessage("INFO", message) } // LogError 记录错误日志 func LogError(message string) { logMessage("ERROR", message) } // LogWarn 记录警告日志 func LogWarn(message string) { logMessage("WARN", message) } // LogDebug 记录调试日志 func LogDebug(message string) { logMessage("DEBUG", message) } // logMessage 写入日志消息 func logMessage(level, message string) { // 控制台输出 log.Printf("[%s] %s", level, message) // 文件输出 logFile := filepath.Join(logDir, fmt.Sprintf("log%s.log", time.Now().Format("20060102"))) file, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { return } defer file.Close() timestamp := time.Now().Format("15:04:05") file.WriteString(fmt.Sprintf("%s [%s] %s\n", timestamp, level, message)) }