datacloud — библиотека логирования, которая остаётся быстрой, когда логов много. Поля типизированы, записи ниже уровня отбрасываются до какой-либо работы, а вывод идёт туда, куда вы укажете.
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 запроса один раз — и он будет в каждой записи.
Первые записи всплеска сохраняются, из остальных — только часть.