17#include "pw_chrono/system_clock.h"
18#include "pw_log/log.h"
33namespace pw::log::internal {
49 chrono::SystemClock::time_point last_timestamp_;
80#define PW_LOG_EVERY_N_DURATION(level, min_interval_between_logs, msg, ...) \
82 static pw::log::internal::RateLimiter rate_limiter; \
84 if (auto result = rate_limiter.Poll(min_interval_between_logs); \
85 result.count == std::numeric_limits<uint16_t>::max()) { \
90 msg " (skipped %d or more, %d/s)", \
92 static_cast<unsigned>(result.count), \
93 static_cast<unsigned>(result.logs_per_s)); \
94 } else if (result.count != 0) { \
99 msg " (skipped %d, %d/s)", \
101 static_cast<unsigned>(result.count - 1), \
102 static_cast<unsigned>(result.logs_per_s)); \
Definition: rate_limited.h:35
std::chrono::duration< rep, period > duration
Alias for durations representable with this clock.
Definition: system_clock.h:90
Definition: rate_limited.h:37