package services

import (
	"log"
	"os"
)

var (
	LogFile *os.File
)

// Inicializa el logger y redirige la salida a un archivo
func LoggerInit(logPath string) error {
	var err error

	// Crear carpeta si no existe
	err = os.MkdirAll("logs", os.ModePerm)
	if err != nil {
		return err
	}

	LogFile, err = os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	if err != nil {
		return err
	}

	log.SetOutput(LogFile)
	log.SetFlags(log.LstdFlags | log.Lshortfile) // Fecha + nombre archivo + línea
	return nil
}

// Cierra el archivo de log (útil para defer)
func LoggerClose() {
	if LogFile != nil {
		LogFile.Close()
	}
}
