package utils

import (
	"fmt"
	"io"
	"log"
	"os"
	"path/filepath"
	"time"
)

var (
	// 日志文件句柄
	logFile *os.File
	// 日志目录
	logDir = "logs"
)

// InitLogger 初始化日志系统
func InitLogger() error {
	// 创建日志目录
	if err := os.MkdirAll(logDir, 0755); err != nil {
		return fmt.Errorf("创建日志目录失败: %w", err)
	}

	// 生成日志文件名
	logFileName := filepath.Join(logDir, time.Now().Format("2006-01-02")+".log")

	// 打开日志文件
	file, err := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		return fmt.Errorf("打开日志文件失败: %w", err)
	}

	// 设置日志输出
	log.SetOutput(io.MultiWriter(os.Stdout, file))
	logFile = file

	return nil
}

// CloseLogger 关闭日志文件
func CloseLogger() {
	if logFile != nil {
		logFile.Close()
	}
}