LogFlow — это высокопроизводительная Python CLI-утилита для отслеживания, мгновенной фильтрации, асинхронной трансформации и красивой визуализации логов в вашей консоли.
Создан разработчиками для разработчиков: от локальной отладки до продуктовых серверов.
Построен на asyncio и C-ускорителях parsing'а. Способен прокачивать до 120,000 логов в секунду при минимальном потреблении CPU.
Гибкое описание цепочек обработки: маскирование персональных данных (REDACT), конвертация формата, фильтрация по уровню и условиям.
Маршрутизируйте логи одновременно в терминал, локальные файлы, AWS S3, Grafana Loki, Telegram и Slack Webhooks.
Автоматическое форматирование JSON payload, встроенная подсветка Python traceback, цветов и структур с помощью Rich UI.
Выберите ваш любимый менеджер пакетов Python или запустите через Docker container.
# Установка через стандартный менеджер пакетов pip
pip install logflow-cli
# Проверка успешной установки
logflow --version
# Мгновенная установка в виртуальное окружение с помощью uv
uv add logflow-cli
# Запуск без установки в глобальную систему
uvx logflow --watch ./app.log
# Добавление зависимости в проект Poetry
poetry add logflow-cli
# Запуск CLI внутри окружения
poetry run logflow --config logflow.yaml
# Изолированная системная установка CLI утилиты
pipx install logflow-cli
# Запуск LogFlow в Docker контейнере с пробросом папки логов
docker run -it --rm \
-v $(pwd)/logs:/var/log/app \
ghcr.io/logflow/logflow:latest \
--watch /var/log/app/*.log --format json
Настраивайте правила обработки, маскирование секретов и приемники логов в файле logflow.yaml
version: '2'
inputs:
- type: file
path: '/var/log/nginx/*.log'
follow: true
filters:
- level_gte: INFO
- exclude_regex: '/healthz|/metrics'
transforms:
- redact_keys: ['password', 'access_token', 'secret']
- add_labels:
env: 'production'
node_id: 'node-worker-01'
sinks:
- type: stdout
format: rich
color_theme: catppuccin-mocha
version: '2'
filters:
- level_gte: ERROR
- match_regex: 'DatabaseConnectionError|TimeoutException'
sinks:
- type: slack_webhook
url: '${SLACK_WEBHOOK_URL}'
channel: '#alerts-prod'
rate_limit: '5/min'
version: '2'
sinks:
- type: s3
bucket: 'company-audit-logs'
region: 'eu-central-1'
buffer_time_seconds: 60
compression: 'gzip'
Источники лог-файлов, стандартный ввод (stdin) или докер-контейнеры. Поддерживает glob-паттерны.
Условия прохождения логов: минимальный уровень (DEBUG/INFO/ERROR), регулярные выражения и исключения.
Трансформация структур JSON: автоматическое скрытие приватных токенов (REDACT) и добавление тегов.
Целевые приемники: терминал, файлы, Grafana Loki, Webhooks и хранилища S3.
Полная документация опций запуска утилиты logflow
Отслеживать изменения в файле или по glob-паттерну (аналог tail -f).
Путь к файлу конфигурации YAML/TOML с описанием пайплайнов.
Минимальный уровень логов для отображения: DEBUG, INFO, WARN, ERROR, CRITICAL.
Фильтровать строки лога по регулярному выражению.
Исключить из вывода строки, совпадающие с выражением.
Формат вывода логов: rich (цветной CLI), json, raw, csv.
Направление вывода данных (stdout, file://logs.txt, s3://bucket/path).
Размер внутреннего асинхронного буфера в байтах при высоком потоке данных.
Все ответы на популярные технические вопросы о LogFlow
В отличие от tail -f, LogFlow умеет парсить структуры JSON в реальном времени, производить безопасное скрытие секретов (REDACT), подсвечивать Python Traceback, асинхронно отправлять фильтрованные логи в несколько систем одновременно (Slack, S3, Loki) и обрабатывать сразу группы лог-файлов по glob-маске.
LogFlow требует Python 3.9 или выше. Благодаря асинхронному движку на asyncio и C-модулям парсинга (ujson/orjson), утилита потребляет менее 25-30 МБ оперативной памяти даже при обработке потока в 100 000 строк в секунду.
Да! LogFlow поставляется с Python API. Вы можете импортировать import logflow прямо в вашем приложении и создавать асинхронные обработчики логов для logging или loguru.
Официальный Docker-образ доступен на GHCR: ghcr.io/logflow/logflow:latest. Вы можете монтировать тома с логами или использовать LogFlow как Sidecar-контейнер для перенаправления stdout контейнеров в ваш S3-архив.
Да, LogFlow автоматически раскрывает переменные окружения вида ${SLACK_WEBHOOK_URL} или ${AWS_SECRET_ACCESS_KEY} внутри файлов конфигурации.