Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
kcenon::logger::sampling::sampler_factory Class Reference

Factory for creating pre-configured samplers. More...

#include <log_sampler.h>

Collaboration diagram for kcenon::logger::sampling::sampler_factory:
Collaboration graph

Static Public Member Functions

static std::unique_ptr< log_samplercreate_disabled ()
 Create a disabled sampler (pass-through)
 
static std::unique_ptr< log_samplercreate_random (double rate)
 Create a random sampling sampler.
 
static std::unique_ptr< log_samplercreate_rate_limited (std::size_t max_per_second)
 Create a rate limiting sampler.
 
static std::unique_ptr< log_samplercreate_adaptive (std::size_t threshold=10000, double min_rate=0.01)
 Create an adaptive sampler.
 
static std::unique_ptr< log_samplercreate_production (double base_rate=0.1, std::vector< log_level > critical_levels={ log_level::warn, log_level::error, log_level::fatal })
 Create a production-ready sampler.
 

Detailed Description

Factory for creating pre-configured samplers.

Since
3.3.0

Definition at line 294 of file log_sampler.h.

Member Function Documentation

◆ create_adaptive()

std::unique_ptr< log_sampler > kcenon::logger::sampling::sampler_factory::create_adaptive ( std::size_t threshold = 10000,
double min_rate = 0.01 )
static

Create an adaptive sampler.

Parameters
thresholdThreshold to trigger adaptation
min_rateMinimum rate under load
Returns
Configured adaptive sampler

Definition at line 477 of file log_sampler.cpp.

479 {
480 return std::make_unique<log_sampler>(sampling_config::adaptive(threshold, min_rate));
481}
static sampling_config adaptive(std::size_t threshold, double min_rate=0.01)
Create an adaptive sampling configuration.

References kcenon::logger::sampling::sampling_config::adaptive().

Here is the call graph for this function:

◆ create_disabled()

std::unique_ptr< log_sampler > kcenon::logger::sampling::sampler_factory::create_disabled ( )
static

Create a disabled sampler (pass-through)

Returns
Sampler that passes all logs

Definition at line 465 of file log_sampler.cpp.

465 {
466 return std::make_unique<log_sampler>(sampling_config::disabled());
467}
static sampling_config disabled()
Create a default sampling configuration (disabled)

References kcenon::logger::sampling::sampling_config::disabled().

Here is the call graph for this function:

◆ create_production()

std::unique_ptr< log_sampler > kcenon::logger::sampling::sampler_factory::create_production ( double base_rate = 0.1,
std::vector< log_level > critical_levels = { log_level::warn, log_level::error, log_level::fatal } )
static

Create a production-ready sampler.

Parameters
base_rateBase sampling rate
critical_levelsLevels that bypass sampling
Returns
Production-configured sampler

Definition at line 483 of file log_sampler.cpp.

485 {
486 sampling_config config;
487 config.enabled = true;
488 config.rate = base_rate;
489 config.strategy = sampling_strategy::adaptive;
490 config.adaptive_enabled = true;
491 config.adaptive_threshold = 50000;
492 config.adaptive_min_rate = 0.01;
493 config.always_log_levels = std::move(critical_levels);
494 return std::make_unique<log_sampler>(config);
495}
@ adaptive
Adaptive sampling that adjusts based on volume.

References kcenon::logger::sampling::adaptive, kcenon::logger::sampling::sampling_config::adaptive_enabled, kcenon::logger::sampling::sampling_config::adaptive_min_rate, kcenon::logger::sampling::sampling_config::adaptive_threshold, kcenon::logger::sampling::sampling_config::always_log_levels, kcenon::logger::sampling::sampling_config::enabled, kcenon::logger::sampling::sampling_config::rate, and kcenon::logger::sampling::sampling_config::strategy.

◆ create_random()

std::unique_ptr< log_sampler > kcenon::logger::sampling::sampler_factory::create_random ( double rate)
static

Create a random sampling sampler.

Parameters
rateSampling rate (0.0 to 1.0)
Returns
Configured random sampler

Definition at line 469 of file log_sampler.cpp.

469 {
470 return std::make_unique<log_sampler>(sampling_config::random_sampling(rate));
471}
static sampling_config random_sampling(double sample_rate)
Create a random sampling configuration.

References kcenon::logger::sampling::sampling_config::random_sampling().

Here is the call graph for this function:

◆ create_rate_limited()

std::unique_ptr< log_sampler > kcenon::logger::sampling::sampler_factory::create_rate_limited ( std::size_t max_per_second)
static

Create a rate limiting sampler.

Parameters
max_per_secondMaximum logs per second
Returns
Configured rate limiting sampler

Definition at line 473 of file log_sampler.cpp.

473 {
474 return std::make_unique<log_sampler>(sampling_config::rate_limited(max_per_second));
475}
static sampling_config rate_limited(std::size_t max_per_second)
Create a rate limiting configuration.

References kcenon::logger::sampling::sampling_config::rate_limited().

Here is the call graph for this function:

The documentation for this class was generated from the following files: