есть полезный макрос, который сам делает
if log_enabled!(log::DEBUG) {
let x = some_expensive_computation();
debug!("x.x = {}, x.y = {}", x.x, x.y);
}
?
crate log ищи
ну вот там есть log_enabled!, его руками вставлять каждый раз как-то не хочется. Хочется сразу же написать свой макрос для такого паттерна
он сам проверяет уровень логов же
сделай cargo expand и посмотри, по идеи он сам вставляет проверку :\
а что бы этот макрос делал? и как бы выглядел? log_for_level!(log::DEBUG, "{}", some_func()) типа того? а внутри бы делал то же, что в исходном варианте?
да, но его нужно каждый раз писать самому
В самом базовом случае даже some_func() не нужен.
log::optimized_info!() - внутри то же, что и в обычном log::info!
https://docs.rs/log/0.4.11/src/log/macros.rs.html#34 Как нет, если да
а, и правда! Я слепой, значит :(
хм, да, мы не туда посмотрели(
очевидно если оно принимает объект то объект должен быть где-то посчитан. Посмотри, Есть ли там вариант передавать лямбду параметром
вопрос в том, expensive_computation или тяжелый Display/Debug
Обсуждают сегодня