JSON-логи, которые читают ваши инструменты, без настройки

datacloud — библиотека логирования, которая остаётся быстрой, когда логов много. Поля типизированы, записи ниже уровня отбрасываются до какой-либо работы, а вывод идёт туда, куда вы укажете.

Начать Код на GitHub
$ cargo add datacloud
Rust · Rust 1.70+
use datacloud::{Logger, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let logger = Logger::builder()
        .level("info")
        .format("json")
        .build()?;

    logger.info("сервер запущен").await?;

    let ok = logger.set_level("debug").await?;
    println!("{ok:?}");
    Ok(())
}

Структурные поля

Пишите пары ключ–значение вместо форматированных строк.

Маскирование

Пометьте поля как секретные — при выводе они будут скрыты.

Дёшево, когда выключено

Выключенный вызов debug стоит одно сравнение.

Два кодировщика

JSON для продакшена, цветной текст для разработки.

Логгеры с контекстом

Добавьте id запроса один раз — и он будет в каждой записи.

Сэмплирование

Первые записи всплеска сохраняются, из остальных — только часть.