|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Configuration structure for logger with validation. More...
#include <logger_config.h>

Public Attributes | |
Basic settings | |
| bool | async = true |
| Enable asynchronous logging. | |
| std::size_t | buffer_size = 8192 |
| Internal buffer size in bytes. | |
| log_level | min_level = log_level::info |
| Minimum log level to process. | |
Performance settings | |
| std::size_t | batch_size = 100 |
| Number of messages per batch write. | |
| std::chrono::milliseconds | flush_interval {1000} |
| Interval between automatic flushes. | |
| bool | use_lock_free = false |
| Use lock-free queue implementation. | |
| std::size_t | max_writers = 10 |
| Maximum number of concurrent writers. | |
| bool | enable_batch_writing = false |
| Enable batch writing mode. | |
Feature flags | |
| bool | enable_metrics = false |
| Enable performance metrics collection. | |
| bool | enable_crash_handler = false |
| Enable crash signal handler. | |
| bool | enable_structured_logging = false |
| Enable structured (JSON) log output. | |
| bool | enable_color_output = true |
| Enable ANSI color output. | |
| bool | enable_timestamp = true |
| Include timestamp in log entries. | |
| bool | enable_source_location = false |
| Include source file/line in log entries. | |
File output settings | |
| std::size_t | max_file_size = 100 * 1024 * 1024 |
| Maximum file size in bytes (default: 100MB). | |
| std::size_t | max_file_count = 5 |
| Maximum number of rotating log files. | |
| std::string | log_directory = "./logs" |
| Directory for log file output. | |
| std::string | log_file_prefix = "app" |
| Prefix for log file names. | |
Network settings | |
| std::string | remote_host = "" |
| Remote log collector hostname. | |
| uint16_t | remote_port = 0 |
| Remote log collector port. | |
| std::chrono::milliseconds | network_timeout {5000} |
| Network operation timeout. | |
| std::size_t | network_retry_count = 3 |
| Number of network retry attempts. | |
Queue settings | |
| enum class | overflow_policy { drop_oldest , drop_newest , block , grow } |
| Policy for handling queue overflow when max_queue_size is reached. More... | |
| std::size_t | max_queue_size = 10000 |
| Maximum number of queued messages. | |
| overflow_policy | queue_overflow_policy = overflow_policy::drop_newest |
| Active overflow policy. | |
Performance tuning | |
| std::size_t | writer_thread_count = 1 |
| Number of dedicated writer threads. | |
| bool | enable_compression = false |
| Enable log compression. | |
| common::VoidResult | validate () const |
| Validate the configuration. | |
| static logger_config | default_config () |
| Create a default configuration. | |
| static logger_config | high_performance () |
| Create a high-performance configuration. | |
| static logger_config | low_latency () |
| Create a low-latency configuration. | |
| static logger_config | debug_config () |
| Create a debug configuration. | |
| static logger_config | production () |
| Create a production configuration. | |
Configuration structure for logger with validation.
This structure holds all configuration parameters for the logger and provides validation to ensure configuration correctness.
Definition at line 35 of file logger_config.h.
|
strong |
Policy for handling queue overflow when max_queue_size is reached.
Definition at line 69 of file logger_config.h.
|
inlinestatic |
Create a debug configuration.
Definition at line 264 of file logger_config.h.
References async, batch_size, enable_color_output, enable_crash_handler, enable_metrics, flush_interval, and min_level.
Referenced by kcenon::logger::logger_config_builder::use_debug_defaults(), and kcenon::logger::logger_builder::use_template().

|
inlinestatic |
Create a default configuration.
Definition at line 222 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::use_default_config(), and kcenon::logger::logger_builder::use_template().

|
inlinestatic |
Create a high-performance configuration.
Definition at line 230 of file logger_config.h.
References async, batch_size, buffer_size, enable_batch_writing, enable_compression, flush_interval, max_queue_size, use_lock_free, and writer_thread_count.
Referenced by kcenon::logger::logger_config_builder::use_high_performance_defaults(), and kcenon::logger::logger_builder::use_template().

|
inlinestatic |
Create a low-latency configuration.
Definition at line 248 of file logger_config.h.
References async, batch_size, buffer_size, flush_interval, max_queue_size, queue_overflow_policy, and use_lock_free.
Referenced by kcenon::logger::logger_config_builder::use_low_latency_defaults(), and kcenon::logger::logger_builder::use_template().

|
inlinestatic |
Create a production configuration.
Definition at line 280 of file logger_config.h.
References async, batch_size, buffer_size, enable_batch_writing, enable_color_output, enable_compression, enable_crash_handler, enable_metrics, max_file_count, max_file_size, and min_level.
Referenced by kcenon::logger::logger_config_builder::use_production_defaults(), and kcenon::logger::logger_builder::use_template().

|
inline |
Validate the configuration.
Definition at line 103 of file logger_config.h.
References async, batch_size, buffer_size, flush_interval, kcenon::logger::invalid_configuration, kcenon::logger::make_logger_void_result(), max_file_count, max_file_size, max_queue_size, max_writers, network_retry_count, network_timeout, kcenon::common::ok(), queue_overflow_policy, remote_host, remote_port, use_lock_free, and writer_thread_count.
Referenced by kcenon::logger::logger_builder::build(), kcenon::logger::logger_config_builder::build(), and kcenon::logger::logger_builder::validate().


| bool kcenon::logger::logger_config::async = true |
Enable asynchronous logging.
Definition at line 38 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), high_performance(), low_latency(), production(), kcenon::logger::logger_config_builder::set_async(), validate(), and kcenon::logger::logger_builder::with_async().
| std::size_t kcenon::logger::logger_config::batch_size = 100 |
Number of messages per batch write.
Definition at line 45 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), high_performance(), low_latency(), production(), kcenon::logger::logger_config_builder::set_batch_size(), validate(), kcenon::logger::logger_builder::with_async(), and kcenon::logger::logger_builder::with_batch_size().
| std::size_t kcenon::logger::logger_config::buffer_size = 8192 |
Internal buffer size in bytes.
Definition at line 39 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::logger_builder::build(), high_performance(), low_latency(), production(), kcenon::logger::logger_config_builder::set_buffer_size(), validate(), and kcenon::logger::logger_builder::with_buffer_size().
| bool kcenon::logger::logger_config::enable_batch_writing = false |
Enable batch writing mode.
Definition at line 49 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::logger_builder::build(), kcenon::logger::logger_config_builder::enable_batch_writing(), high_performance(), production(), and kcenon::logger::logger_builder::with_batch_writing().
| bool kcenon::logger::logger_config::enable_color_output = true |
Enable ANSI color output.
Definition at line 57 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), kcenon::logger::logger_config_builder::enable_color_output(), and production().
| bool kcenon::logger::logger_config::enable_compression = false |
Enable log compression.
Definition at line 97 of file logger_config.h.
Referenced by kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::logger_config_builder::enable_compression(), high_performance(), and production().
| bool kcenon::logger::logger_config::enable_crash_handler = false |
Enable crash signal handler.
Definition at line 55 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), debug_config(), kcenon::logger::logger_config_builder::enable_crash_handler(), production(), and kcenon::logger::logger_builder::with_crash_handler().
| bool kcenon::logger::logger_config::enable_metrics = false |
Enable performance metrics collection.
Definition at line 54 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), kcenon::logger::logger_config_builder::enable_metrics(), production(), kcenon::logger::logger_builder::with_metrics(), and kcenon::logger::logger_builder::with_monitoring().
| bool kcenon::logger::logger_config::enable_source_location = false |
Include source file/line in log entries.
Definition at line 59 of file logger_config.h.
Referenced by kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_config_builder::enable_source_location(), and kcenon::logger::logger_builder::with_default_pattern().
| bool kcenon::logger::logger_config::enable_structured_logging = false |
Enable structured (JSON) log output.
Definition at line 56 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::logger_config_builder::enable_structured_logging(), and kcenon::logger::logger_builder::with_structured_logging().
| bool kcenon::logger::logger_config::enable_timestamp = true |
Include timestamp in log entries.
Definition at line 58 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::enable_timestamp(), and kcenon::logger::logger_builder::with_default_pattern().
| std::chrono::milliseconds kcenon::logger::logger_config::flush_interval {1000} |
Interval between automatic flushes.
Definition at line 46 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::performance_strategy::apply_minimal_overhead(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), high_performance(), low_latency(), kcenon::logger::logger_config_builder::set_flush_interval(), validate(), and kcenon::logger::logger_builder::with_flush_interval().
| std::string kcenon::logger::logger_config::log_directory = "./logs" |
Directory for log file output.
Definition at line 82 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_log_directory(), and kcenon::logger::logger_builder::with_file_output().
| std::string kcenon::logger::logger_config::log_file_prefix = "app" |
Prefix for log file names.
Definition at line 83 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_log_file_prefix(), and kcenon::logger::logger_builder::with_file_output().
| std::size_t kcenon::logger::logger_config::max_file_count = 5 |
Maximum number of rotating log files.
Definition at line 81 of file logger_config.h.
Referenced by kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), production(), kcenon::logger::logger_config_builder::set_max_file_count(), validate(), and kcenon::logger::logger_builder::with_file_output().
| std::size_t kcenon::logger::logger_config::max_file_size = 100 * 1024 * 1024 |
Maximum file size in bytes (default: 100MB).
Definition at line 80 of file logger_config.h.
Referenced by kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), production(), kcenon::logger::logger_config_builder::set_max_file_size(), validate(), and kcenon::logger::logger_builder::with_file_output().
| std::size_t kcenon::logger::logger_config::max_queue_size = 10000 |
Maximum number of queued messages.
Definition at line 64 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), high_performance(), low_latency(), kcenon::logger::logger_config_builder::set_max_queue_size(), validate(), and kcenon::logger::logger_builder::with_max_queue_size().
| std::size_t kcenon::logger::logger_config::max_writers = 10 |
Maximum number of concurrent writers.
Definition at line 48 of file logger_config.h.
Referenced by kcenon::logger::logger_builder::build(), kcenon::logger::logger_config_builder::set_max_writers(), and validate().
| log_level kcenon::logger::logger_config::min_level = log_level::info |
Minimum log level to process.
Definition at line 40 of file logger_config.h.
Referenced by kcenon::logger::environment_strategy::apply(), kcenon::logger::deployment_strategy::apply_development(), kcenon::logger::deployment_strategy::apply_production(), kcenon::logger::deployment_strategy::apply_staging(), kcenon::logger::deployment_strategy::apply_testing(), kcenon::logger::logger_builder::build(), debug_config(), kcenon::logger::logger_builder::detect_environment(), production(), kcenon::logger::logger_config_builder::set_min_level(), and kcenon::logger::logger_builder::with_min_level().
| std::size_t kcenon::logger::logger_config::network_retry_count = 3 |
Number of network retry attempts.
Definition at line 91 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_network_retry_count(), and validate().
| std::chrono::milliseconds kcenon::logger::logger_config::network_timeout {5000} |
Network operation timeout.
Definition at line 90 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_network_timeout(), validate(), and kcenon::logger::logger_builder::with_network_output().
| overflow_policy kcenon::logger::logger_config::queue_overflow_policy = overflow_policy::drop_newest |
Active overflow policy.
Definition at line 75 of file logger_config.h.
Referenced by kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), kcenon::logger::deployment_strategy::apply_production(), low_latency(), kcenon::logger::logger_config_builder::set_overflow_policy(), validate(), and kcenon::logger::logger_builder::with_overflow_policy().
| std::string kcenon::logger::logger_config::remote_host = "" |
Remote log collector hostname.
Definition at line 88 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_remote_logging(), validate(), and kcenon::logger::logger_builder::with_network_output().
| uint16_t kcenon::logger::logger_config::remote_port = 0 |
Remote log collector port.
Definition at line 89 of file logger_config.h.
Referenced by kcenon::logger::logger_config_builder::set_remote_logging(), validate(), and kcenon::logger::logger_builder::with_network_output().
| bool kcenon::logger::logger_config::use_lock_free = false |
Use lock-free queue implementation.
Definition at line 47 of file logger_config.h.
Referenced by kcenon::logger::performance_strategy::apply_balanced(), kcenon::logger::performance_strategy::apply_high_throughput(), kcenon::logger::performance_strategy::apply_low_latency(), high_performance(), low_latency(), kcenon::logger::logger_config_builder::use_lock_free(), validate(), and kcenon::logger::logger_builder::with_lock_free().
| std::size_t kcenon::logger::logger_config::writer_thread_count = 1 |
Number of dedicated writer threads.
Definition at line 96 of file logger_config.h.
Referenced by kcenon::logger::performance_strategy::apply_high_throughput(), high_performance(), kcenon::logger::logger_config_builder::set_writer_thread_count(), and validate().