TL;DR. RustLogs — Rust-библиотека для структурированного журналирования, ориентированная на производительность и интеграцию с современной инфраструктурой наблюдаемости.
Ключевые выводы
- Идея. Структурированные логи (JSON, key-value) — основа современной наблюдаемости.
- Подход. Минимальные накладные расходы, нулевая стоимость аллокаций в горячем пути.
- Влияние. Полезен сервисам с высокой нагрузкой, где каждая аллокация имеет значение.
Контекст #
Почему ещё одна библиотека логирования #
В экосистеме Rust есть log, tracing, slog и другие проверенные библиотеки. RustLogs занимает нишу, где требуется одновременно:
- Структурированный вывод (JSON по умолчанию)
- Минимальные накладные расходы в горячем пути
- Интеграция с современными системами наблюдаемости (OpenTelemetry, Datadog, Grafana Loki)
- Простой и читаемый API
Идея #
Что предоставляет библиотека #
- Структурированный логирование с key-value-полями
- Уровни логов с фильтрацией по конфигурации
- Контекстная информация (correlation ID, user ID) через span'ы
- Экспорт в JSON, line-protocol, OpenTelemetry-формат
- Async-aware: корректная работа с tokio и async-std
Подход #
Производительность #
RustLogs использует zero-cost-абстракции Rust: компилятор удаляет код для отключённых уровней логирования, аллокации сводятся к минимуму, лог-сообщения формируются только если уровень включён.
Сценарии #
Где это полезно #
- Высоконагруженные сервисы платежей и торговли
- Системы реального времени с жёсткими бюджетами задержек
- Сервисы с большим объёмом структурированных логов для аналитики
Открытый код #
Apache-2.0 #
Библиотека опубликована под лицензией Apache-2.0 на GitHub.
Заключение #
RustLogs — целевой инструмент для команд, которым нужно сочетание структурированных логов и максимальной производительности. Это не «универсальный логгер», а инструмент для конкретного класса задач.
Последняя проверка .