Введение
Lazyjournal — это инструмент для быстрого просмотра и фильтрации логов с использованием интерфейса терминала. Написанный на языке Go с использованием библиотеки awesome-gocui (форк gocui), он вдохновлён такими инструментами, как lazydocker и lazygit.
Основной функционал
Работа с журналами
- Просмотр логов системных и пользовательских юнитов через
journalctl. - Список всех загрузок системы для анализа логов ядра.
- Логи файловой системы из
/var/log(например, Apache, Nginx), а такжеsyslog,dmesg(ядро) и авторизации пользователей (wtmpиbtmp), отсортированные по дате изменения. - Просмотр логов в домашней директории пользователей и root.
- Чтение архивированных логов в формате
.gz.

Контейнеры Docker и Podman
- Логи контейнеров Docker, Podman и сервисов Swarm.
Фильтрация и поиск
- Отображение текущего выбранного лога с загрузкой и отметкой времени.
- Три режима фильтрации:
- По умолчанию: чувствительный к регистру поиск.
- Fuzzy: нечёткий, регистронезависимый поиск.
- Regex: поиск с использованием регулярных выражений, регистронезависимый по умолчанию.
Планы разработки
- Поддержка MacOS для работы с
launchd. - Поддержка Windows для чтения логов событий через PowerShell.
- Синтаксическое окрашивание вывода логов (аналогично tailspin).
- Управление через мышь и прокрутка интерфейса.
- Работа с удалёнными машинами через
ssh.
Установка
Быстрая установка
Для установки или обновления выполните команду в терминале:
curl https://raw.githubusercontent.com/Lifailon/lazyjournal/main/install.sh | bash
Установка через Go
Для установки через Go (должен быть установлен Go интерпретатор):
sudo snap install go --classic
grep -F 'export PATH=$PATH:$HOME/go/bin' $HOME/.bashrc || echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bashrc && source $HOME/.bashrc
go install github.com/Lifailon/lazyjournal@latest
Запуск:
lazyjournal
Сборка из исходного кода
- Клонируйте репозиторий:bashКопировать код
git clone https://github.com/Lifailon/lazyjournal cd lazyjournal - Установите зависимости:bashКопировать код
go mod tidy - Запустите проект:bashКопировать код
go run main.go
Для создания исполняемого файла для разных платформ:
bash build.sh
Горячие клавиши
| Комбинация | Описание |
|---|---|
| Tab | Переключение между окнами. |
| Shift+Tab | Возврат к предыдущему окну. |
| Left/Right | Переключение между списками логов. |
| Enter | Открыть журнал для просмотра. |
| Up/Down | Прокрутка списка логов или вывода вверх/вниз. |
| Shift+Up/Down | Быстрая прокрутка на 10 строк. |
| Alt+Up/Down | Изменение количества строк в выводе (1000-50000). |
| Alt+Left/Right | Смена режима фильтрации. |
| Ctrl+R | Обновление текущего лога. |
| Ctrl+D/W | Очистка поля фильтрации. |
| Ctrl+C | Выход. |