package logger import ( "fmt" "os" "path/filepath" "time" ) // LogMessage записывает сообщение в лог-файл func LogMessage(logFile, message string) error { f, err := os.OpenFile(logFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return err } defer f.Close() timestamp := time.Now().Format("2006-01-02 15:04:05") logEntry := fmt.Sprintf("[%s] %s\n", timestamp, message) _, err = f.WriteString(logEntry) return err } // GetLogPath возвращает путь к лог-файлу func GetLogPath(logsDir, logType string) string { return filepath.Join(logsDir, fmt.Sprintf("%s.log", logType)) } // GetTrafficLogPath возвращает путь к лог-файлу трафика с временной меткой func GetTrafficLogPath(logsDir string) string { timestamp := time.Now().Format("20060102_150405") return filepath.Join(logsDir, fmt.Sprintf("vless_traffic_%s.log", timestamp)) }