futriis/pkg/utils/logger.go

55 lines
1.1 KiB
Go
Raw Normal View History

2026-02-23 22:48:31 +03:00
// /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()
}
}