![]() |
LogIt++
Header-only, macro-first C++ logging library
|
Exports logs as OTLP JSON payloads via a user-provided callback. More...
#include <OtlpPayloadLogger.hpp>
Classes | |
| struct | Config |
Public Member Functions | |
| OtlpPayloadLogger () | |
| Constructs OTLP payload logger with default configuration. | |
| OtlpPayloadLogger (const Config &config) | |
| Constructs OTLP payload logger with custom configuration. | |
| ~OtlpPayloadLogger () override | |
| Stops worker and drains queue. | |
| OtlpPayloadLogger (const OtlpPayloadLogger &)=delete | |
| OtlpPayloadLogger & | operator= (const OtlpPayloadLogger &)=delete |
| void | log (const LogRecord &record, const std::string &message) override |
| Queues or exports a log message. | |
| void | wait () override |
| Waits until queue is empty and worker is idle. | |
| void | shutdown () override |
| Stops the OTLP worker after draining queued items. | |
| std::string | get_string_param (const LoggerParam ¶m) const override |
| Retrieves a string parameter from the logger. | |
| int64_t | get_int_param (const LoggerParam ¶m) const override |
| Retrieves an integer parameter from the logger. | |
| double | get_float_param (const LoggerParam ¶m) 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. | |
| uint64_t | dropped_count () const |
| Returns number of dropped records. | |
| uint64_t | failed_export_count () const |
| Returns number of failed export attempts. | |
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 Member Functions | |
| void | worker_loop () |
| Worker thread loop. | |
| void | stop () |
| Stops worker and drains remaining queue. | |
| int64_t | get_last_log_ts () const |
| Returns last log timestamp. | |
| int64_t | get_time_since_last_log () const |
| Returns elapsed time since last log. | |
Static Private Member Functions | |
| static int64_t | counter_to_int64 (uint64_t value) |
| Converts unsigned counter value to int64_t with saturation. | |
Private Attributes | |
| Config | m_config |
| std::mutex | m_mutex |
| std::condition_variable | m_cv |
| std::condition_variable | m_space_cv |
| std::deque< OtlpLogItem > | m_queue |
| bool | m_stopping = false |
| bool | m_idle = true |
| std::thread | m_worker |
| std::atomic< int > | m_log_level = ATOMIC_VAR_INIT(static_cast<int>(LogLevel::LOG_LVL_TRACE)) |
| std::atomic< int64_t > | m_last_log_ts = ATOMIC_VAR_INIT(0) |
| std::atomic< uint64_t > | m_dropped = ATOMIC_VAR_INIT(0) |
| std::atomic< uint64_t > | m_failed_exports = ATOMIC_VAR_INIT(0) |
Exports logs as OTLP JSON payloads via a user-provided callback.
This backend serializes records to OTLP/HTTP JSON and passes each batch to a user-provided callback instead of sending HTTP itself.
Definition at line 37 of file OtlpPayloadLogger.hpp.
|
inline |
Constructs OTLP payload logger with default configuration.
Definition at line 51 of file OtlpPayloadLogger.hpp.
|
inlineexplicit |
Constructs OTLP payload logger with custom configuration.
| config | Export configuration. |
Definition at line 55 of file OtlpPayloadLogger.hpp.
|
inlineoverride |
Stops worker and drains queue.
Definition at line 63 of file OtlpPayloadLogger.hpp.
|
delete |
|
inlinestaticprivate |
Converts unsigned counter value to int64_t with saturation.
| value | Counter value. |
Definition at line 337 of file OtlpPayloadLogger.hpp.
|
inline |
Returns number of dropped records.
Definition at line 215 of file OtlpPayloadLogger.hpp.
|
inline |
Returns number of failed export attempts.
Definition at line 221 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Retrieves a floating-point parameter from the logger.
| param | Parameter to retrieve. |
Implements logit::ILogger.
Definition at line 185 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Retrieves an integer parameter from the logger.
| param | Parameter to retrieve. |
Implements logit::ILogger.
Definition at line 170 of file OtlpPayloadLogger.hpp.
|
inlineprivate |
Returns last log timestamp.
Definition at line 319 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Gets minimal log level for this logger.
Implements logit::ILogger.
Definition at line 209 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Retrieves a string parameter from the logger.
| param | Parameter to retrieve. |
Implements logit::ILogger.
Definition at line 155 of file OtlpPayloadLogger.hpp.
|
inlineprivate |
Returns elapsed time since last log.
Definition at line 325 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Queues or exports a log message.
| record | Structured log record. |
| message | Formatted log message used as OTLP body. |
Implements logit::ILogger.
Definition at line 73 of file OtlpPayloadLogger.hpp.
|
delete |
|
inlineoverridevirtual |
Sets minimal log level for this logger.
| level | Minimum log level. |
Implements logit::ILogger.
Definition at line 203 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Stops the OTLP worker after draining queued items.
Implements logit::ILogger.
Definition at line 148 of file OtlpPayloadLogger.hpp.
|
inlineprivate |
Stops worker and drains remaining queue.
Definition at line 300 of file OtlpPayloadLogger.hpp.
|
inlineoverridevirtual |
Waits until queue is empty and worker is idle.
Implements logit::ILogger.
Definition at line 136 of file OtlpPayloadLogger.hpp.
|
inlineprivate |
Worker thread loop.
Definition at line 243 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 226 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 229 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 239 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 240 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 233 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 238 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 237 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 228 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 231 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 230 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 232 of file OtlpPayloadLogger.hpp.
|
private |
Definition at line 235 of file OtlpPayloadLogger.hpp.