diff --git a/pkg/services/logger.go b/pkg/services/logger.go new file mode 100644 index 0000000..0ab1948 --- /dev/null +++ b/pkg/services/logger.go @@ -0,0 +1,37 @@ +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() + } +}