package main import ( "fmt" "log" "os" "path/filepath" "strings" "time" "qiweimanager/logger" ) // initLogger 初始化日志记录器 func initLogger() { // 创建一个临时的控制台日志器作为备用 consoleLogger := log.New(os.Stderr, "[辅助程序] ", log.LstdFlags) consoleLogger.Println("开始初始化日志系统...") // 获取程序路径 exePath, err := os.Executable() if err != nil { consoleLogger.Printf("获取程序路径失败: %v,使用默认路径", err) exePath = "helper.exe" } exeDir := filepath.Dir(exePath) consoleLogger.Printf("程序目录: %s", exeDir) // 创建日志目录 logDir := filepath.Join(exeDir, "Log") err = os.MkdirAll(logDir, 0755) if err != nil { consoleLogger.Printf("创建日志目录失败: %v,使用系统临时目录", err) logDir = os.TempDir() } consoleLogger.Printf("日志目录: %s", logDir) // 初始化日志记录器,使用详细配置 var loggerErr error // 正确传递程序名称而不是日志目录 appName := "helper" // 确保appName不包含任何路径分隔符 safeAppName := strings.ReplaceAll(appName, "\\", "_") safeAppName = strings.ReplaceAll(safeAppName, "/", "_") // 设置日志级别为Error,仅记录错误日志信息 globalLogger, loggerErr = logger.NewLogger(safeAppName, true, logger.LevelDebug) if loggerErr != nil { consoleLogger.Printf("初始化日志记录器失败: %v", loggerErr) // 如果初始化失败,创建一个简单的文件日志器 logFileName := filepath.Join(logDir, fmt.Sprintf("helper_%d.log", time.Now().Unix())) logFile, fileErr := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if fileErr != nil { consoleLogger.Printf("创建备用日志文件失败: %v", fileErr) } else { consoleLogger.Printf("创建备用日志文件: %s", logFileName) globalLogger = &logger.Logger{ Logger: log.New(logFile, "[辅助程序] ", log.LstdFlags), LogLevel: logger.LevelDebug, LogEnabled: true, } } } else { consoleLogger.Println("日志记录器初始化成功") } // 启动日志清理调度器,每天清理超过30天的旧日志 /* if globalLogger != nil { logDir := globalLogger.GetLogDir() consoleLogger.Printf("启动日志清理调度器,日志目录: %s", logDir) logger.StartLogCleanupScheduler(logDir, 30, 24*time.Hour) } */ }