|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Represents a single log entry with all associated metadata. More...
#include <log_entry.h>

Public Member Functions | |
| log_entry (log_level lvl, const std::string &msg, std::chrono::system_clock::time_point ts=std::chrono::system_clock::now()) | |
| log_entry (log_level lvl, const std::string &msg, const std::string &file, int line, const std::string &function, std::chrono::system_clock::time_point ts=std::chrono::system_clock::now()) | |
| log_entry (log_entry &&) noexcept=default | |
| Move constructor. | |
| log_entry & | operator= (log_entry &&) noexcept=default |
| Move assignment operator. | |
| log_entry (const log_entry &)=delete | |
| Deleted copy constructor. | |
| log_entry & | operator= (const log_entry &)=delete |
| Deleted copy assignment operator. | |
Public Attributes | |
| log_level | level |
| Severity level of the log message. | |
| small_string_256 | message |
| The actual log message. | |
| std::chrono::system_clock::time_point | timestamp |
| Timestamp when the log entry was created. | |
| std::optional< source_location > | location |
| Optional source code location information. | |
| std::optional< small_string_64 > | thread_id |
| Optional thread identifier. | |
| std::optional< small_string_128 > | category |
| Optional category for log filtering and routing. | |
| std::optional< otlp::otel_context > | otel_ctx |
| Optional OpenTelemetry context for trace correlation. | |
| std::optional< log_fields > | fields |
| Optional structured fields for key-value logging. | |
Represents a single log entry with all associated metadata.
The log_entry structure is the core data type that flows through the logging system. It contains the log message, severity level, timestamp, and optional metadata such as source location and thread information.
The structure is designed for high performance:
Definition at line 155 of file log_entry.h.
|
inline |
Definition at line 231 of file log_entry.h.
|
inline |
Definition at line 261 of file log_entry.h.
|
defaultnoexcept |
Move constructor.
Enables efficient transfer of log entries without copying
|
delete |
Deleted copy constructor.
Prevents accidental copying for performance reasons
Deleted copy assignment operator.
Prevents accidental copying for performance reasons
Move assignment operator.
Enables efficient transfer of log entries without copying
| std::optional<small_string_128> kcenon::logger::log_entry::category |
Optional category for log filtering and routing.
Allows grouping related log messages (e.g., "database", "network", "security")
Definition at line 197 of file log_entry.h.
Referenced by kcenon::logger::structured_log_builder::emit(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::filters::category_filter::should_log(), kcenon::logger::sampling::log_sampler::should_sample(), and kcenon::logger::formatted_writer::write().
| std::optional<log_fields> kcenon::logger::log_entry::fields |
Optional structured fields for key-value logging.
Allows adding arbitrary key-value pairs to log entries for structured logging support. These fields are output by formatters that support structured output (e.g., JSON formatter).
Definition at line 213 of file log_entry.h.
Referenced by kcenon::logger::structured_log_builder::emit(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::sampling::log_sampler::get_field_rate(), json_formatter_example(), logfmt_formatter_example(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::sampling::log_sampler::should_bypass_field(), kcenon::logger::filters::field_exists_filter::should_log(), kcenon::logger::filters::field_range_filter::should_log(), kcenon::logger::filters::field_regex_filter::should_log(), kcenon::logger::filters::field_value_filter::should_log(), template_formatter_example(), and kcenon::logger::formatted_writer::write().
| log_level kcenon::logger::log_entry::level |
Severity level of the log message.
Determines the importance and routing of the message
Definition at line 162 of file log_entry.h.
Referenced by kcenon::logger::buffered_writer::copy_entry(), kcenon::logger::copy_log_entry(), kcenon::logger::compact_formatter::format(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::plain_formatter::format(), kcenon::logger::timestamp_formatter::format(), kcenon::logger::network_writer::format_for_network(), main(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::filters::exact_level_filter::should_log(), kcenon::logger::filters::level_filter::should_log(), kcenon::logger::log_filter::should_log(), kcenon::logger::routing::router_builder::level_condition::should_log(), level_filter::should_log(), kcenon::logger::sampling::log_sampler::should_sample(), kcenon::logger::async::high_performance_async_writer::write(), kcenon::logger::console_writer::write(), kcenon::logger::critical_writer::write(), kcenon::logger::encrypted_writer::write(), kcenon::logger::formatted_writer::write(), kcenon::logger::network_writer::write(), kcenon::logger::otlp_writer::write(), counted_console_writer::write_entry_impl(), and kcenon::logger::critical_writer::write_to_wal().
| std::optional<source_location> kcenon::logger::log_entry::location |
Optional source code location information.
Present when log() is called with file/line/function parameters
Definition at line 183 of file log_entry.h.
Referenced by kcenon::logger::buffered_writer::copy_entry(), kcenon::logger::copy_log_entry(), kcenon::logger::log_collector::impl::enqueue(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::plain_formatter::format(), kcenon::logger::timestamp_formatter::format(), kcenon::logger::network_writer::format_for_network(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::log_filter::should_log(), kcenon::logger::memory::log_entry_pool::pooled_log_entry::to_log_entry(), kcenon::logger::async::high_performance_async_writer::write(), kcenon::logger::encrypted_writer::write(), kcenon::logger::formatted_writer::write(), kcenon::logger::network_writer::write(), kcenon::logger::otlp_writer::write(), and kcenon::logger::critical_writer::write_to_wal().
| small_string_256 kcenon::logger::log_entry::message |
The actual log message.
Uses small_string_256 for efficient storage of messages up to 256 characters
Definition at line 169 of file log_entry.h.
Referenced by kcenon::logger::buffered_writer::copy_entry(), kcenon::logger::copy_log_entry(), kcenon::logger::compact_formatter::format(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::plain_formatter::format(), kcenon::logger::timestamp_formatter::format(), kcenon::logger::console_writer::format_entry(), kcenon::logger::file_writer::format_entry(), kcenon::logger::network_writer::format_for_network(), kcenon::logger::base_writer::format_log_entry(), main(), kcenon::logger::template_formatter::resolve_placeholder(), content_filter::should_log(), kcenon::logger::filters::regex_filter::should_log(), kcenon::logger::log_filter::should_log(), kcenon::logger::routing::router_builder::regex_condition::should_log(), security_filter::should_log(), kcenon::logger::sampling::log_sampler::should_sample(), kcenon::logger::async::high_performance_async_writer::write(), kcenon::logger::encrypted_writer::write(), kcenon::logger::network_writer::write(), kcenon::logger::otlp_writer::write(), and kcenon::logger::critical_writer::write_to_wal().
| std::optional<otlp::otel_context> kcenon::logger::log_entry::otel_ctx |
Optional OpenTelemetry context for trace correlation.
Contains trace_id and span_id for distributed tracing
Definition at line 204 of file log_entry.h.
Referenced by kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::formatted_writer::write(), and kcenon::logger::otlp_writer::write().
| std::optional<small_string_64> kcenon::logger::log_entry::thread_id |
Optional thread identifier.
Can be set to track which thread generated the log message
Definition at line 190 of file log_entry.h.
Referenced by kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::plain_formatter::format(), kcenon::logger::timestamp_formatter::format(), kcenon::logger::template_formatter::resolve_placeholder(), and kcenon::logger::formatted_writer::write().
| std::chrono::system_clock::time_point kcenon::logger::log_entry::timestamp |
Timestamp when the log entry was created.
Uses system clock for wall-clock time representation
Definition at line 175 of file log_entry.h.
Referenced by kcenon::logger::buffered_writer::copy_entry(), kcenon::logger::copy_log_entry(), kcenon::logger::logger::impl::dispatch_to_writers(), kcenon::logger::json_formatter::format(), kcenon::logger::logfmt_formatter::format(), kcenon::logger::plain_formatter::format(), kcenon::logger::timestamp_formatter::format(), kcenon::logger::network_writer::format_for_network(), main(), kcenon::logger::template_formatter::resolve_placeholder(), kcenon::logger::async::high_performance_async_writer::write(), kcenon::logger::encrypted_writer::write(), kcenon::logger::formatted_writer::write(), kcenon::logger::network_writer::write(), kcenon::logger::otlp_writer::write(), and kcenon::logger::critical_writer::write_to_wal().