logt — terminal
$
14:23:01 ERROR msg="connection refused" service="postgres" port=5432
14:23:01 ERROR msg="retry failed" attempts=3 service="postgres"
14:23:02 WARN msg="fallback to replica" latency_ms=142
14:23:02 INFO msg="request handled" status=200 path="/api/users"
14:23:03 ERROR msg="timeout exceeded" deadline=5s actual=7.2s
14:23:03 DEBUG msg="gc cycle" pause=0.8ms heap=256MB

Производительность LogT

0
M ops/sec · Ring Buffer
Скорость добавления строк в кольцевой буфер. Потокобезопасная операция с блокировкой-free чтением
0
K lines/sec · JSON Parse
Скорость парсинга JSON строк с авто-определением формата. Каждая строка анализируется и структурируется
0
M matches/sec · Text Filter
Скорость текстового поиска по подстроке. Без учёта регистра, оптимизирован для большого объёма логов
0
lines · Ring Buffer Default
Размер кольцевого буфера по умолчанию. Хранит последние 5000 строк в памяти (~2MB). Настраивается через --buffer

Установка LogT

Установка через go install
go install github.com/turkprogrammer/logt/cmd/logt@latest
Сборка из исходников
git clone https://github.com/turkprogrammer/logt && cd logt && go build -o logt ./cmd/logt

Возможности

01

TUI интерфейс

Интерактивный терминальный интерфейс на Bubble Tea. Навигация, поиск, bookmarks — всё в одном экране.

Bubble Tea
02

Умная фильтрация

Фильтры по времени (--since/--until), уровню логов, JSON Path выражениям. Комбинируйте фильтры для точного поиска.

JSON Path
03

Мульти-формат

Авто-определение формата: JSON, Logfmt, Plain. Каждая строка парсится и структурируется автоматически.

Auto-detect
04

Headless режим

Для скриптов и CI/CD: --headless --stats, --tail N, --forward. Интегрируется в пайплайны без TUI.

Scriptable
05

Ring Buffer

Хранит последние 5000 строк в памяти (~2MB). Потокобезопасный, блокировка-free чтение. Настраивается через --buffer.

5000 lines · ~2MB
06

Log Forwarding

Экспорт отфильтрованных логов в файл (--forward filtered.log) или stdout (--forward -) для pipe-интеграций.

Pipe-ready
07

Bookmarks

Сохраняйте важные строки одной клавишей (m). Просматривайте (M), экспортируйте в YAML (e).

m · M · e
08

JSON Explorer

Нажмите Enter на JSON строке для разворачивания в полноэкранное дерево с подсветкой ключей и значений.

Enter to expand
09

Stdin Support

Работает с pipe: cat app.log | logt, kubectl logs deployment/app | logt, docker logs -f mycontainer | logt.

cat | logt
10

Shell Completions

Автодополнение для bash, zsh, fish. Установка одной командой: logt completion bash > /etc/bash_completion.d/logt.

bash · zsh · fish
11

Live Tail

Автопрокрутка при поступлении новых строк. Автоматическое обнаружение ротации файлов. Polling и watcher.

Real-time
12

Синтаксис

Цветовая кодировка уровней: INFO=синий, WARN=желтый, ERROR=красный. Подсветка JSON ключей и значений.

Syntax highlight

Горячие клавиши

Space Пауза/Продолжить автопрокрутку
/ Открыть фильтр по подстроке
r Переключить Fuzzy/Regex фильтр
Enter Применить фильтр / Открыть JSON
Esc Очистить фильтр / Закрыть JSON
↑ ↓ Прокрутка вверх/вниз
PgUp Прокрутка по страницам
g Перейти в начало (less-style)
G Перейти в конец (less-style)
n / N Следующее / Предыдущее совпадение
Tab Переключить панель источников
m Bookmark текущую строку
M Показать bookmarks
e Export bookmarks в YAML
q Выход

Архитектура

entry point
cmd/logt/main.go
CLI диспетчер, signal handling
domain
internal/domain
LogLine, RingBuffer, parsers
providers
internal/provider
File, Stdin, Watcher, Multi
ui
internal/ui
Bubble Tea model/view/update
config
internal/config
Viper + pflag + env
jsonpath
internal/domain/jsonpath
JSON Path expressions

Сравнение с lnav

Возможность LogT lnav
Размер бинарника ~6MB ~15MB
Время старта <100ms ~200ms
JSON поддержка Нативная Ограниченная
YAML конфиг
Требует конфиг Нет Да
Headless режим
Shell completions

CLI Справочник

--since, -S Фильтр с времени (1h, 30m, 2024-01-15)
--until, -U Фильтр по время (1h, 30m, 2024-01-15)
--json, -j JSON Path фильтр ('.level == "error"')
--level, -l Фильтр по уровню (debug,info,warn,error)
--headless, -H Режим без TUI (для скриптов)
--tail, -n Последние N строк (0 = все)
--stats, -s Вывод агрегированной статистики
--forward, -f Экспорт логов (файл или stdout)
--export, -e Экспорт bookmarks в файл
--buffer, -b Размер буфера (по умолчанию: 5000)
--max-buffer, -m Максимальный размер буфера
--path, -p Пути к файлам или шаблоны
--version, -v Версия

Об авторе

Юсупов Роберт Рахимович
Senior Backend Engineer
18+ лет опыта · Go · PHP · ML · High-load