LogIt++
Header-only, macro-first C++ logging library
Loading...
Searching...
No Matches
logit::PrometheusPayloadLogger Class Referencefinal

Exposes log metrics as Prometheus text exposition format via user-provided callback. More...

#include <PrometheusPayloadLogger.hpp>

Inheritance diagram for logit::PrometheusPayloadLogger:
logit::ILogger

Classes

struct  Config
 

Public Member Functions

 PrometheusPayloadLogger ()
 Constructs Prometheus payload logger with default configuration.
 
 PrometheusPayloadLogger (const Config &config)
 Constructs Prometheus payload logger with custom configuration.
 
 ~PrometheusPayloadLogger () override=default
 
 PrometheusPayloadLogger (const PrometheusPayloadLogger &)=delete
 
PrometheusPayloadLogger & operator= (const PrometheusPayloadLogger &)=delete
 
void log (const LogRecord &record, const std::string &message) override
 Updates internal metric counters for a log message.
 
void wait () override
 If emit_on_wait, collects metrics and invokes on_payload callback.
 
void shutdown () override
 Stops the logger (no worker thread to drain for payload logger).
 
std::string collect_payload ()
 Collects current metrics and returns serialized Prometheus text payload.
 
std::string get_string_param (const LoggerParam &param) const override
 Retrieves a string parameter from the logger.
 
int64_t get_int_param (const LoggerParam &param) const override
 Retrieves an integer parameter from the logger.
 
double get_float_param (const LoggerParam &param) const override
 Retrieves a floating-point parameter from the logger.
 
void set_log_level (LogLevel level) override
 Sets minimal log level for this logger.
 
LogLevel get_log_level () const override
 Gets minimal log level for this logger.
 
- Public Member Functions inherited from logit::ILogger
virtual ~ILogger ()=default
 
virtual std::vector< std::string > get_buffered_strings () const
 Returns buffered formatted messages in chronological order.
 
virtual std::vector< BufferedLogEntry > get_buffered_entries () const
 Returns buffered structured entries in chronological order.
 
virtual std::vector< LogFileInfo > list_log_files () const
 Lists persisted log files owned by this backend.
 
virtual LogFileReadResult read_log_file (const std::string &path) const
 Reads one persisted log file owned by this backend.
 
virtual std::vector< LogFileReadResult > read_log_files (const std::vector< std::string > &paths) const
 Reads several persisted log files owned by this backend.
 
virtual LogClearResult clear_logs (const LogClearOptions &options=LogClearOptions())
 Clears logger-owned buffered or persisted records when supported.
 

Private Attributes

Config m_config
 
std::mutex m_collect_mutex
 
PrometheusLoggerMetrics m_metrics
 
std::atomic< int > m_log_level = ATOMIC_VAR_INIT(static_cast<int>(LogLevel::LOG_LVL_TRACE))
 

Detailed Description

Exposes log metrics as Prometheus text exposition format via user-provided callback.

This backend tracks internal counters and gauges (log records total, dropped, failed exports, last log timestamp, time since last log) and serializes them to Prometheus text exposition format. The payload is passed to a user-provided callback on wait() or on-demand via collect_payload().

Definition at line 33 of file PrometheusPayloadLogger.hpp.

Constructor & Destructor Documentation

◆ PrometheusPayloadLogger() [1/3]

logit::PrometheusPayloadLogger::PrometheusPayloadLogger ( )
inline

Constructs Prometheus payload logger with default configuration.

Definition at line 44 of file PrometheusPayloadLogger.hpp.

◆ PrometheusPayloadLogger() [2/3]

logit::PrometheusPayloadLogger::PrometheusPayloadLogger ( const Config & config)
inlineexplicit

Constructs Prometheus payload logger with custom configuration.

Parameters
configExport configuration.

Definition at line 48 of file PrometheusPayloadLogger.hpp.

◆ ~PrometheusPayloadLogger()

logit::PrometheusPayloadLogger::~PrometheusPayloadLogger ( )
overridedefault

◆ PrometheusPayloadLogger() [3/3]

logit::PrometheusPayloadLogger::PrometheusPayloadLogger ( const PrometheusPayloadLogger & )
delete

Member Function Documentation

◆ collect_payload()

std::string logit::PrometheusPayloadLogger::collect_payload ( )
inline

Collects current metrics and returns serialized Prometheus text payload.

Returns
Complete Prometheus text exposition format string.

Definition at line 90 of file PrometheusPayloadLogger.hpp.

◆ get_float_param()

double logit::PrometheusPayloadLogger::get_float_param ( const LoggerParam & param) const
inlineoverridevirtual

Retrieves a floating-point parameter from the logger.

Parameters
paramParameter to retrieve.
Returns
Parameter value in seconds for time params, or 0.0 when unsupported.

Implements logit::ILogger.

Definition at line 141 of file PrometheusPayloadLogger.hpp.

◆ get_int_param()

int64_t logit::PrometheusPayloadLogger::get_int_param ( const LoggerParam & param) const
inlineoverridevirtual

Retrieves an integer parameter from the logger.

Parameters
paramParameter to retrieve.
Returns
Parameter value, or 0 when unsupported.

Implements logit::ILogger.

Definition at line 126 of file PrometheusPayloadLogger.hpp.

◆ get_log_level()

LogLevel logit::PrometheusPayloadLogger::get_log_level ( ) const
inlineoverridevirtual

Gets minimal log level for this logger.

Returns
Current minimal log level.

Implements logit::ILogger.

Definition at line 165 of file PrometheusPayloadLogger.hpp.

◆ get_string_param()

std::string logit::PrometheusPayloadLogger::get_string_param ( const LoggerParam & param) const
inlineoverridevirtual

Retrieves a string parameter from the logger.

Parameters
paramParameter to retrieve.
Returns
Parameter value, or empty string when unsupported.

Implements logit::ILogger.

Definition at line 111 of file PrometheusPayloadLogger.hpp.

◆ log()

void logit::PrometheusPayloadLogger::log ( const LogRecord & record,
const std::string & message )
inlineoverridevirtual

Updates internal metric counters for a log message.

Parameters
recordStructured log record.
messageFormatted log message (unused by Prometheus metrics).

Implements logit::ILogger.

Definition at line 59 of file PrometheusPayloadLogger.hpp.

◆ operator=()

PrometheusPayloadLogger & logit::PrometheusPayloadLogger::operator= ( const PrometheusPayloadLogger & )
delete

◆ set_log_level()

void logit::PrometheusPayloadLogger::set_log_level ( LogLevel level)
inlineoverridevirtual

Sets minimal log level for this logger.

Parameters
levelMinimum log level.

Implements logit::ILogger.

Definition at line 159 of file PrometheusPayloadLogger.hpp.

◆ shutdown()

void logit::PrometheusPayloadLogger::shutdown ( )
inlineoverridevirtual

Stops the logger (no worker thread to drain for payload logger).

Implements logit::ILogger.

Definition at line 86 of file PrometheusPayloadLogger.hpp.

◆ wait()

void logit::PrometheusPayloadLogger::wait ( )
inlineoverridevirtual

If emit_on_wait, collects metrics and invokes on_payload callback.

Implements logit::ILogger.

Definition at line 74 of file PrometheusPayloadLogger.hpp.

Member Data Documentation

◆ m_collect_mutex

std::mutex logit::PrometheusPayloadLogger::m_collect_mutex
private

Definition at line 171 of file PrometheusPayloadLogger.hpp.

◆ m_config

Config logit::PrometheusPayloadLogger::m_config
private

Definition at line 170 of file PrometheusPayloadLogger.hpp.

◆ m_log_level

std::atomic<int> logit::PrometheusPayloadLogger::m_log_level = ATOMIC_VAR_INIT(static_cast<int>(LogLevel::LOG_LVL_TRACE))
private

Definition at line 174 of file PrometheusPayloadLogger.hpp.

◆ m_metrics

PrometheusLoggerMetrics logit::PrometheusPayloadLogger::m_metrics
private

Definition at line 172 of file PrometheusPayloadLogger.hpp.


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