Files
compress/internal/presentation/tui/logger_adapter.go
Dmitriy Fofanov ec65cfd05a Достижение: Добавлены скрипты и документация для релиза PDF Compressor.
- Добавлен release-body.md для подробных заметок о релизе на русском языке.
- Реализован release-gitea.ps1 для автоматизированного релиза Gitea с помощью PowerShell.
- Создан release-gitea.sh для автоматизированного релиза Gitea с помощью Bash.
- Добавлен release.sh для сборки и маркировки релизов с поддержкой нескольких платформ.
- Улучшен пользовательский интерфейс благодаря информативному логированию и обработке ошибок.
- Добавлена ​​поддержка переменных окружения и управления конфигурацией.
- Добавлена ​​функция создания архивов и загрузки ресурсов в Gitea.
2025-11-05 09:33:12 +03:00

84 lines
2.1 KiB
Go

package tui
import (
"compressor/internal/domain/repositories"
"fmt"
)
// UILogger адаптер логгера для отображения в UI
type UILogger struct {
fileLogger repositories.Logger
tuiManager *Manager
}
// NewUILogger создает новый UI логгер
func NewUILogger(fileLogger repositories.Logger, tuiManager *Manager) *UILogger {
return &UILogger{
fileLogger: fileLogger,
tuiManager: tuiManager,
}
}
// Debug логирует отладочное сообщение
func (l *UILogger) Debug(format string, args ...interface{}) {
message := fmt.Sprintf(format, args...)
if l.fileLogger != nil {
l.fileLogger.Debug(format, args...)
}
if l.tuiManager != nil {
l.tuiManager.AddLog("DEBUG", message)
}
}
// Info логирует информационное сообщение
func (l *UILogger) Info(format string, args ...interface{}) {
message := fmt.Sprintf(format, args...)
if l.fileLogger != nil {
l.fileLogger.Info(format, args...)
}
if l.tuiManager != nil {
l.tuiManager.AddLog("INFO", message)
}
}
// Warning логирует предупреждение
func (l *UILogger) Warning(format string, args ...interface{}) {
message := fmt.Sprintf(format, args...)
if l.fileLogger != nil {
l.fileLogger.Warning(format, args...)
}
if l.tuiManager != nil {
l.tuiManager.AddLog("WARNING", message)
}
}
// Error логирует ошибку
func (l *UILogger) Error(format string, args ...interface{}) {
message := fmt.Sprintf(format, args...)
if l.fileLogger != nil {
l.fileLogger.Error(format, args...)
}
if l.tuiManager != nil {
l.tuiManager.AddLog("ERROR", message)
}
}
// Success логирует успешное выполнение
func (l *UILogger) Success(format string, args ...interface{}) {
message := fmt.Sprintf(format, args...)
if l.fileLogger != nil {
l.fileLogger.Success(format, args...)
}
if l.tuiManager != nil {
l.tuiManager.AddLog("SUCCESS", message)
}
}
// Close закрывает логгер
func (l *UILogger) Close() error {
if l.fileLogger != nil {
return l.fileLogger.Close()
}
return nil
}