Class SampledLog
java.lang.Object
cloud.opencode.base.log.enhance.SampledLog
Sampled Log - Rate-limited and Sampled Logging
采样日志 - 限流和采样的日志
SampledLog provides mechanisms to control high-frequency logging through probability sampling, time-based sampling, or count-based sampling.
SampledLog 提供通过概率采样、基于时间的采样或基于计数的采样来控制高频日志的机制。
Example | 示例:
// 1% probability sampling
SampledLogger sampledLog = SampledLog.sample(0.01);
sampledLog.info("High frequency event: {}", eventId);
// Time-based: at most once per 5 seconds
SampledLogger rateLimited = SampledLog.sampleByTime(Duration.ofSeconds(5));
rateLimited.warn("Rate limited warning");
// Count-based: every 100th log
SampledLogger countBased = SampledLog.sampleByCount(100);
countBased.debug("Processing item {}", itemId);
Features | 主要功能:
- Probability-based sampling (0.0 to 1.0) - 基于概率的采样(0.0 到 1.0)
- Time-based sampling (minimum interval) - 基于时间的采样(最小间隔)
- Count-based sampling (every Nth message) - 基于计数的采样(每 N 条消息)
Security | 安全性:
- Thread-safe: Yes (AtomicLong + ThreadLocalRandom) - 线程安全: 是(AtomicLong + ThreadLocalRandom)
- Null-safe: No (format must not be null) - 空值安全: 否(格式不能为 null)
- Since:
- JDK 25, opencode-base-log V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceSampled Logger Interface. -
Method Summary
Modifier and TypeMethodDescriptionstatic SampledLog.SampledLoggersample(double sampleRate) Creates a probability-based sampled logger.static SampledLog.SampledLoggersampleByCount(int every) Creates a count-based sampled logger.static SampledLog.SampledLoggersampleByTime(Duration interval) Creates a time-based sampled logger.
-
Method Details
-
sample
Creates a probability-based sampled logger. 创建基于概率的采样日志记录器。- Parameters:
sampleRate- the sample rate (0.0 to 1.0) - 采样率- Returns:
- the sampled logger - 采样日志记录器
-
sampleByTime
Creates a time-based sampled logger. 创建基于时间的采样日志记录器。- Parameters:
interval- the minimum interval between logs - 日志之间的最小间隔- Returns:
- the sampled logger - 采样日志记录器
-
sampleByCount
Creates a count-based sampled logger. 创建基于计数的采样日志记录器。- Parameters:
every- log every Nth message - 每 N 条消息记录一次- Returns:
- the sampled logger - 采样日志记录器
-