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

Classes

class  kcenon::logger::backends::integration_backend
 Abstract interface for integration backends. More...
 
class  kcenon::logger::backends::standalone_backend
 Integration backend for standalone logger operation. More...
 
struct  kcenon::logger::core::log_context
 Log context containing source location information. More...
 
struct  kcenon::logger::analysis::analyzed_log_entry
 Log entry for analysis. More...
 
struct  kcenon::logger::analysis::analysis_stats
 Analysis result statistics. More...
 
class  kcenon::logger::analysis::log_analyzer
 Log analyzer for processing and analyzing log data. More...
 
class  kcenon::logger::analysis::analyzer_factory
 Factory for creating log analyzers. More...
 

Enumerations

enum class  logger_system::overflow_policy {
  block , drop_oldest , drop_newest , grow ,
  block , drop_oldest , drop_newest , grow
}
 
enum class  logger_system::health_status {
  healthy , degraded , unhealthy , critical ,
  healthy , degraded , unhealthy , critical
}
 
enum class  logger_system::logger_error_code {
  success = 0 , invalid_configuration , writer_not_found , writer_already_exists ,
  write_failed , flush_failed , buffer_full , invalid_level ,
  invalid_pattern , file_open_failed , network_error , encryption_error ,
  compression_error , monitoring_failed , component_not_found , di_resolution_failed ,
  health_check_failed , writer_closed , unknown_error , success = 0 ,
  invalid_configuration , writer_not_found , writer_already_exists , write_failed ,
  flush_failed , buffer_full , invalid_level , invalid_pattern ,
  file_open_failed , network_error , encryption_error , compression_error ,
  monitoring_failed , component_not_found , di_resolution_failed , health_check_failed ,
  writer_closed , unknown_error
}
 
enum class  kcenon::logger::health_status { healthy , degraded , unhealthy , unknown }
 Health status levels. More...
 

Typedefs

using kcenon::logger::overflow_policy = logger_system::overflow_policy
 

Functions

virtual ~integration_backend ()=default
 Virtual destructor.
 
virtual common::interfaces::log_level normalize_level (int external_level) const =0
 Normalize external log level to internal level.
 
virtual std::string get_backend_name () const =0
 Get the backend name.
 
virtual bool requires_initialization () const
 Check if backend requires special initialization.
 
virtual bool initialize ()
 Initialize the backend.
 
virtual void shutdown ()
 Shutdown the backend.
 
 standalone_backend ()=default
 Default constructor.
 
 ~standalone_backend () override=default
 Default destructor.
 
common::interfaces::log_level normalize_level (int external_level) const override
 Normalize external log level (pass-through)
 
std::string get_backend_name () const override
 Get backend name.
 
bool requires_initialization () const override
 Check if initialization is required.
 
std::unique_ptr< integration_backend > kcenon::logger::backends::create_standalone_backend ()
 
std::unique_ptr< integration_backend > kcenon::logger::backends::create_default_backend ()
 Detect and create the appropriate default backend.
 
log_context kcenon::logger::core::make_log_context (std::string_view file, int line, std::string_view function)
 Create a log context with source location.
 
void add_entry (const analyzed_log_entry &entry)
 Add a log entry for analysis.
 
void add_entries (const std::vector< analyzed_log_entry > &entries)
 Add multiple log entries.
 
void clear ()
 Clear all entries.
 
const analysis_stats & get_stats ()
 Get analysis statistics.
 
std::vector< analyzed_log_entry > filter_by_level (common::interfaces::log_level level) const
 Filter entries by log level.
 
std::vector< analyzed_log_entry > filter_by_time_range (const std::chrono::system_clock::time_point &start, const std::chrono::system_clock::time_point &end) const
 Filter entries by time range.
 
std::vector< analyzed_log_entry > search_messages (const std::string &search_text) const
 Find entries containing specific text.
 
double get_error_rate (const std::chrono::minutes &window=std::chrono::minutes(60)) const
 Get error rate for a time window.
 
std::string generate_summary_report ()
 Generate summary report.
 
size_t size () const
 Get the total number of entries.
 
bool empty () const
 Check if the analyzer has no entries.
 
void update_stats ()
 
std::string level_to_string (common::interfaces::log_level level) const
 
static std::unique_ptr< log_analyzer > create_basic ()
 Create a basic log analyzer.
 

Variables

std::string_view file {"unknown"}
 
int line {0}
 
std::string_view function {"unknown"}
 
std::thread::id thread_id {std::this_thread::get_id()}
 
std::chrono::time_point< std::chrono::system_clock > timestamp
 
common::interfaces::log_level level
 
std::string message
 
std::chrono::system_clock::time_point timestamp
 
std::string source_file
 
int source_line
 
std::string function_name
 
size_t total_entries = 0
 
std::unordered_map< common::interfaces::log_level, size_t > level_counts
 
std::chrono::system_clock::time_point earliest_timestamp
 
std::chrono::system_clock::time_point latest_timestamp
 
std::vector< std::string > most_frequent_messages
 
std::unordered_map< std::string, size_t > error_patterns
 
std::vector< analyzed_log_entry > entries_
 
analysis_stats cached_stats_
 
bool stats_dirty_ = true
 

Files

file  src/modules/logger.cppm
 Primary module interface for kcenon.logger.
 
file  src/modules/analysis.cppm
 Analysis partition for kcenon.logger module.
 
file  src/modules/backends.cppm
 Backends partition for kcenon.logger module.
 
file  src/modules/core.cppm
 Core partition for kcenon.logger module.