Исправления для LogBoard+: убраны фразы 'Connected to container' и исправлен пересчет счетчиков LogLevels

- Убраны фразы 'Connected to container: frontend-iaas' из single view
- Исправлен пересчет счетчиков LogLevels с учетом параметра Tail Lines
- Добавлена функция recalculateMultiViewCounters() для корректной работы счетчиков в MultiView
- Счетчики теперь считают только отображаемые логи с учетом фильтров и Tail Lines
- Обновлены все обработчики событий для корректного пересчета счетчиков в обоих режимах
This commit is contained in:
Сергей Антропов 2025-08-17 17:52:12 +03:00
parent ea94b8e3e0
commit 012c31522c
2 changed files with 1041 additions and 72 deletions

View File

@ -1,8 +1,75 @@
# LogBoard+ # LogBoard+
**Автор:** Сергей Антропов Веб-интерфейс для просмотра логов Docker контейнеров в реальном времени.
**Сайт:** https://devops.org.ru
## Исправления дублирования строк и правильных переносов строк в режимах Single View и MultiView
### Проблема
В режимах Single View и MultiView происходило дублирование строк логов и проблемы с переносами строк между логами, что затрудняло чтение и анализ логов.
### Внесенные исправления
#### Для режима Single View:
1. **Обработка дублированных строк в WebSocket данных**
- Добавлена проверка на дублирование в функции `openWs`
- Используются только уникальные строки из входящих данных
2. **Проверка дублирования при добавлении строк**
- Добавлена проверка на дублирование в функции `handleLine` для Single View
- Пропускаются дублированные строки перед добавлением в интерфейс
3. **Правильные переносы строк**
- Добавлены переносы строк `\n` после каждой строки лога для читаемости
- Создана функция `processSingleViewSpecialReplacements()` для обработки строк
- Улучшена функция `cleanSingleViewEmptyLines()` для сохранения переносов строк
4. **Универсальная функция очистки**
- Создана функция `cleanDuplicateLines()` для удаления последовательных дубликатов
- Работает как для Single View, так и для MultiView
5. **Периодическая очистка**
- Добавлена очистка дублированных строк при обновлении счетчиков
- Очистка выполняется при обновлении логов и фильтров
#### Для режима MultiView:
1. **Предотвращение одновременного отображения в обычном и multi-view режимах**
- Логи теперь отображаются только в одном режиме одновременно
- Добавлена проверка `!state.multiViewMode` в функции `handleLine`
2. **Обработка дублированных строк в WebSocket данных**
- Добавлена проверка на дублирование в функции `openMultiViewWs`
- Используются только уникальные строки из входящих данных
3. **Функция очистки дублированных строк**
- Создана функция `cleanMultiViewDuplicateLines()` для удаления последовательных дубликатов
- Функция вызывается при добавлении новых строк и периодически
4. **Улучшенная обработка специальных случаев**
- Улучшена функция `processMultiViewSpecialReplacements()` для обработки строк с "FoundINFO:"
- Добавлена проверка на дублирование в исходном тексте
5. **Периодическая очистка**
- Добавлена периодическая очистка дублированных строк каждую секунду
- Очистка выполняется при обновлении логов и фильтров
### Тестирование
Для тестирования исправлений используйте в консоли браузера:
```javascript
testDuplicateRemoval() // Тест функции очистки дубликатов MultiView
testSingleViewDuplicateRemoval() // Тест функции очистки дубликатов Single View
testSingleViewEmptyLinesRemoval() // Тест функции очистки пустых строк Single View
testSingleViewLineBreaks() // Тест правильного отображения переносов строк
checkMultiViewHTML() // Проверка HTML на наличие дубликатов
cleanDuplicateLines() // Универсальная функция очистки дубликатов
cleanSingleViewEmptyLines() // Функция очистки пустых строк
```
### Автор
Сергей Антропов
Сайт: https://devops.org.ru
LogBoard+ — это веб-панель для просмотра логов микросервисов из `docker-compose` в **реальном времени** с поддержкой: LogBoard+ — это веб-панель для просмотра логов микросервисов из `docker-compose` в **реальном времени** с поддержкой:
- Вкладок по сервисам и репликам - Вкладок по сервисам и репликам

File diff suppressed because it is too large Load Diff