// /futriis/pkg/utils/logger.go // Пакет utils предоставляет функции для логирования package utils import ( "fmt" "os" "time" ) // Logger представляет структуру для логирования type Logger struct { file *os.File } var loggerInstance *Logger // InitLogger инициализирует логгер func InitLogger(logFile string) error { file, err := os.OpenFile(logFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return err } loggerInstance = &Logger{ file: file, } return nil } // GetLogger возвращает экземпляр логгера func GetLogger() *Logger { return loggerInstance } // Log записывает сообщение в лог func (l *Logger) Log(level, message string) { if l == nil || l.file == nil { return } timestamp := time.Now().Format("2006-01-02 15:04:05") logLine := fmt.Sprintf("[%s] %s: %s\n", timestamp, level, message) l.file.WriteString(logLine) } // Close закрывает файл лога func (l *Logger) Close() { if l != nil && l.file != nil { l.file.Close() } }