unilink  0.4.3
A simple C++ library for unified async communication
unilink::diagnostics::Logger Class Reference

Centralized logging system with async support. More...

#include <logger.hpp>

Classes

struct  Impl
 

Public Types

using LogCallback = std::function< void(LogLevel level, const std::string &formatted_message)>
 

Public Member Functions

 Logger ()
 
 ~Logger ()
 
 Logger (Logger &&) noexcept
 
Loggeroperator= (Logger &&) noexcept
 
 Logger (const Logger &)=delete
 
Loggeroperator= (const Logger &)=delete
 
void set_level (LogLevel level)
 Set minimum log level. More...
 
LogLevel get_level () const
 Get current log level. More...
 
void set_console_output (bool enable)
 Enable/disable console output. More...
 
void set_file_output (const std::string &filename)
 Set file output. More...
 
void set_file_output_with_rotation (const std::string &filename, const LogRotationConfig &config=LogRotationConfig{})
 Set file output with rotation. More...
 
void set_async_logging (bool enable, const AsyncLogConfig &config=AsyncLogConfig{})
 Enable/disable async logging. More...
 
bool is_async_logging_enabled () const
 Check if async logging is enabled. More...
 
AsyncLogStats get_async_stats () const
 Get async logging statistics. More...
 
void set_callback (LogCallback callback)
 Set log callback. More...
 
void set_outputs (int outputs)
 Set output destinations. More...
 
void set_enabled (bool enabled)
 Enable/disable logging. More...
 
bool is_enabled () const
 Check if logging is enabled. More...
 
void set_format (const std::string &format)
 Set log format. More...
 
void flush ()
 Flush all outputs. More...
 
void log (LogLevel level, std::string_view component, std::string_view operation, std::string_view message)
 
void debug (std::string_view component, std::string_view operation, std::string_view message)
 
void info (std::string_view component, std::string_view operation, std::string_view message)
 
void warning (std::string_view component, std::string_view operation, std::string_view message)
 
void error (std::string_view component, std::string_view operation, std::string_view message)
 
void critical (std::string_view component, std::string_view operation, std::string_view message)
 

Static Public Member Functions

static Loggerinstance ()
 Get singleton instance. More...
 
static Loggerdefault_logger ()
 

Detailed Description

Centralized logging system with async support.

Provides thread-safe, configurable logging with multiple output destinations, async processing, batch operations, and performance optimizations for production use.

Definition at line 136 of file logger.hpp.

Member Typedef Documentation

◆ LogCallback

using unilink::diagnostics::Logger::LogCallback = std::function<void(LogLevel level, const std::string& formatted_message)>

Definition at line 138 of file logger.hpp.

Constructor & Destructor Documentation

◆ Logger() [1/3]

unilink::diagnostics::Logger::Logger ( )

Definition at line 491 of file logger.cc.

◆ ~Logger()

unilink::diagnostics::Logger::~Logger ( )
default

◆ Logger() [2/3]

unilink::diagnostics::Logger::Logger ( Logger &&  )
defaultnoexcept

◆ Logger() [3/3]

unilink::diagnostics::Logger::Logger ( const Logger )
delete

Member Function Documentation

◆ critical()

void unilink::diagnostics::Logger::critical ( std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 630 of file logger.cc.

◆ debug()

void unilink::diagnostics::Logger::debug ( std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 614 of file logger.cc.

◆ default_logger()

Logger & unilink::diagnostics::Logger::default_logger ( )
static

Definition at line 498 of file logger.cc.

◆ error()

void unilink::diagnostics::Logger::error ( std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 626 of file logger.cc.

◆ flush()

void unilink::diagnostics::Logger::flush ( )

Flush all outputs.

Definition at line 582 of file logger.cc.

◆ get_async_stats()

AsyncLogStats unilink::diagnostics::Logger::get_async_stats ( ) const

Get async logging statistics.

Definition at line 556 of file logger.cc.

◆ get_level()

LogLevel unilink::diagnostics::Logger::get_level ( ) const

Get current log level.

Definition at line 507 of file logger.cc.

◆ info()

void unilink::diagnostics::Logger::info ( std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 618 of file logger.cc.

◆ instance()

Logger & unilink::diagnostics::Logger::instance ( )
static

Get singleton instance.

Definition at line 503 of file logger.cc.

◆ is_async_logging_enabled()

bool unilink::diagnostics::Logger::is_async_logging_enabled ( ) const

Check if async logging is enabled.

Definition at line 554 of file logger.cc.

◆ is_enabled()

bool unilink::diagnostics::Logger::is_enabled ( ) const

Check if logging is enabled.

Definition at line 578 of file logger.cc.

◆ log()

void unilink::diagnostics::Logger::log ( LogLevel  level,
std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 584 of file logger.cc.

◆ operator=() [1/2]

Logger& unilink::diagnostics::Logger::operator= ( const Logger )
delete

◆ operator=() [2/2]

Logger & unilink::diagnostics::Logger::operator= ( Logger &&  )
defaultnoexcept

◆ set_async_logging()

void unilink::diagnostics::Logger::set_async_logging ( bool  enable,
const AsyncLogConfig config = AsyncLogConfig{} 
)

Enable/disable async logging.

Parameters
enableTrue to enable async logging
configAsync logging configuration

Definition at line 546 of file logger.cc.

◆ set_callback()

void unilink::diagnostics::Logger::set_callback ( LogCallback  callback)

Set log callback.

Parameters
callbackFunction to call for each log message

Definition at line 564 of file logger.cc.

◆ set_console_output()

void unilink::diagnostics::Logger::set_console_output ( bool  enable)

Enable/disable console output.

Parameters
enableTrue to enable console output

Definition at line 509 of file logger.cc.

◆ set_enabled()

void unilink::diagnostics::Logger::set_enabled ( bool  enabled)

Enable/disable logging.

Parameters
enabledTrue to enable logging

Definition at line 576 of file logger.cc.

◆ set_file_output()

void unilink::diagnostics::Logger::set_file_output ( const std::string &  filename)

Set file output.

Parameters
filenameLog file path (empty string to disable file output)

Definition at line 518 of file logger.cc.

◆ set_file_output_with_rotation()

void unilink::diagnostics::Logger::set_file_output_with_rotation ( const std::string &  filename,
const LogRotationConfig config = LogRotationConfig{} 
)

Set file output with rotation.

Parameters
filenameLog file path
configRotation configuration

Definition at line 531 of file logger.cc.

◆ set_format()

void unilink::diagnostics::Logger::set_format ( const std::string &  format)

Set log format.

Parameters
formatFormat string with placeholders: {timestamp}, {level}, {component}, {operation}, {message}

Definition at line 580 of file logger.cc.

◆ set_level()

void unilink::diagnostics::Logger::set_level ( LogLevel  level)

Set minimum log level.

Parameters
levelMessages below this level will be ignored

Definition at line 505 of file logger.cc.

◆ set_outputs()

void unilink::diagnostics::Logger::set_outputs ( int  outputs)

Set output destinations.

Parameters
outputsBitwise OR of LogOutput flags

Definition at line 574 of file logger.cc.

◆ warning()

void unilink::diagnostics::Logger::warning ( std::string_view  component,
std::string_view  operation,
std::string_view  message 
)

Definition at line 622 of file logger.cc.


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