Все проекты

Open Source

structured_log

Структурированное логирование для Dart и Flutter в духе Python structlog: JSON-логи с контекстом, просмотр логов прямо в приложении и опциональный self-hosted сервер для команды.

DartFlutterLoggingSelf-hostedOpen Source

Логи, которые можно читать и искать

structured_log — экосистема структурированного логирования для Dart и Flutter, вдохновлённая Python-библиотекой structlog. Вместо строк — события с контекстом в JSON, которые удобно фильтровать, искать и анализировать.

import 'package:structured_log/structured_log.dart';

void main() {
  getLogger().info('user_login', context: {'user_id': 42});
}

Два способа использования

Автономно — без сети

Библиотека и встроенный просмотрщик логов работают полностью внутри приложения, без сервера:

Пакет Назначение
structured_log JSON-логирование: привязка контекста, correlation-поля, процессоры, маршрутизация по нескольким sink. Зависит только от meta
structured_log_flutter Headless-ядро просмотрщика: LogBuffer и фильтруемый LogViewerController без привязки к дизайн-системе
structured_log_material, _fluent, _cupertino Готовые просмотрщики с поиском и фильтрами в стилях Material 3, Fluent UI и Cupertino

С self-hosted сервером — когда нужна команда

Когда логи нужно собирать централизованно и искать всей командой, подключается собственный сервер — альтернатива SaaS-платформам и тяжёлому ELK-стеку в той же Dart-экосистеме:

  • structured_log_http — отправляет записи на сервер пачками, с повторами и экспоненциальной задержкой, через ограниченный буфер.
  • structured_log_server — мультитенантный сервер на shelf: приём, хранение (SQLite или PostgreSQL через drift), поиск и live-tail логов через SSE.
  • structured_log_admin_client — Flutter-приложение для операторов: дашборд, управление ресурсами, живой поиск по логам, пользователи и журнал аудита.

Под капотом сервера

  • Модель доступа: пользователи, группы, команды, проекты и секретные ключи проектов; роли и scope (RBAC).
  • Токены в стиле OAuth2/OIDC с отзывом через token_version и rate limiting на эндпоинтах аутентификации.
  • Квоты хранения на проект и административный журнал аудита.
  • Админ-клиент и сервер общаются только через документированный HTTP/JSON-контракт.

Установка

dependencies:
  structured_log: ^0.2.0

Руководства по встраиванию, администрированию и архитектуре — на сайте проекта.