Initial qiwei secondary development handoff
This commit is contained in:
72
helper/log.go
Normal file
72
helper/log.go
Normal file
@@ -0,0 +1,72 @@
|
||||
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)
|
||||
} */
|
||||
}
|
||||
Reference in New Issue
Block a user