CppTrail
Loading...
Searching...
No Matches
CppTrail::BasicLogger< char_t > Class Template Reference

A high-level handle for logging operations. More...

#include <base_logger.h>

Inheritance diagram for CppTrail::BasicLogger< char_t >:

Public Types

using char_type = typename BasicLoggerImpl< char_t >::char_type
 Alias for the underlying character type used by this logger.
 
using string_type = typename BasicLoggerImpl< char_t >::string_type
 Alias for the basic_string type associated with this logger's encoding.
 
using message_type = typename BasicLoggerImpl< char_t >::message_type
 Alias for the BasicMessage type associated to the logger.
 
using string_view_type = typename BasicLoggerImpl< char_t >::string_view_type
 Alias for the basic_string_view type associated with this logger's encoding.
 

Public Member Functions

 BasicLogger (nullptr_t)=delete
 Prevents construction from a null pointer.
 
 BasicLogger (const BasicLogger &pLogger)=default
 Copy constructor (defaults to shared ownership).
 
 BasicLogger (BasicLogger &&pLogger)=default
 Move constructor.
 
BasicLoggeroperator= (const BasicLogger &pLogger)=default
 Assignment operator.
 
BasicLoggeroperator= (BasicLogger &&pLogger)=default
 Assignment operator.
 
void start ()
 Starts the underlying logging service.
 
void stop ()
 Performs a synchronous shutdown of the logger.
 
void signalStop ()
 Initiates an asynchronous shutdown request.
 
void join ()
 Blocks until the asynchronous shutdown sequence is complete.
 
Status status ()
 Retrieves the current operational status of the logger.
 
Primary Logging Interface
BasicLoggerlog (message_type oMessage)
 Submits a pre-constructed message object to the logger.
 
BasicLoggerlog (const Level nLevel, string_type sMessage)
 Logs a message with a specific severity level.
 
BasicLoggerlog (string_type sLevel, string_type sMessage)
 Logs a message with a custom string-based level.
 
Convenience Severity Wrappers
BasicLoggersuccess (string_type sMessage)
 Submits a SUCCESS level log message.
 
BasicLoggertrace (string_type sMessage)
 Submits a TRACE level log message.
 
BasicLoggerdebug (string_type sMessage)
 Submits a DEBUG level log message.
 
BasicLoggerinfo (string_type sMessage)
 Submits an INFO level log message.
 
BasicLoggermessage (string_type sMessage)
 Submits a MESSAGE level log message.
 
BasicLoggerwarning (string_type sMessage)
 Submits a WARNING level log message.
 
BasicLoggererror (string_type sMessage)
 Submits an ERROR level log message.
 
BasicLoggercritical (string_type sMessage)
 Submits a CRITICAL level log message.
 
BasicLoggerfatal (string_type sMessage)
 Submits a FATAL level log message.
 
BasicLoggersuccess (string_view_type sMsg)
 Success wrapper for string views.
 
BasicLoggertrace (string_view_type sMsg)
 Trace wrapper for string views.
 
BasicLoggerdebug (string_view_type sMsg)
 Debug wrapper for string views.
 
BasicLoggerinfo (string_view_type sMsg)
 Info wrapper for string views.
 
BasicLoggermessage (string_view_type sMsg)
 Message wrapper for string views.
 
BasicLoggerwarning (string_view_type sMsg)
 Warning wrapper for string views.
 
BasicLoggererror (string_view_type sMsg)
 Error wrapper for string views.
 
BasicLoggercritical (string_view_type sMsg)
 Critical wrapper for string views.
 
BasicLoggerfatal (string_view_type sMsg)
 Fatal wrapper for string views.
 
BasicLoggersuccess (const char_t *sMsg)
 Success wrapper for string litterals.
 
BasicLoggertrace (const char_t *sMsg)
 Trace wrapper for string litterals.
 
BasicLoggerdebug (const char_t *sMsg)
 Debug wrapper for string litterals.
 
BasicLoggerinfo (const char_t *sMsg)
 Info wrapper for string litterals.
 
BasicLoggermessage (const char_t *sMsg)
 Message wrapper for string litterals.
 
BasicLoggerwarning (const char_t *sMsg)
 Warning wrapper for string litterals.
 
BasicLoggererror (const char_t *sMsg)
 Error wrapper for string litterals.
 
BasicLoggercritical (const char_t *sMsg)
 Critical wrapper for string litterals.
 
BasicLoggerfatal (const char_t *sMsg)
 Fatal wrapper for string litterals.
 
String View Overloads (C++17)
BasicLoggerlog (const Level nLevel, string_view_type sMessage)
 Logs a message view with a specific severity level.
 
BasicLoggerlog (string_type sLevel, string_view_type sMessage)
 Logs a message view with a custom string level.
 
BasicLoggerlog (const Level nLevel, const char_t *sMessage)
 Logs a message view with a specific severity level.
 
BasicLoggerlog (string_type sLevel, const char_t *sMessage)
 Logs a message view with a custom string level.
 
Exception Overloads
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLoggerlog (const std::exception &oException)
 Logs an exception with the default ERROR level.
 
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLoggerlog (const Level nLevel, const std::exception &oException)
 Logs an exception with a specific severity level.
 
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLoggerlog (string_type sLevel, const std::exception &oException)
 Logs an exception with a custom string level.
 

Protected Member Functions

 BasicLogger (std::shared_ptr< BasicLoggerImpl< char_t > > pLogger)
 Protected constructor for derived factories.
 
 ~BasicLogger ()
 Destructor that ensures a graceful shutdown of the logger.
 

Detailed Description

template<typename char_t>
class CppTrail::BasicLogger< char_t >

A high-level handle for logging operations.

BasicLogger uses a pImpl-like approach via std::shared_ptr to manage a BasicLoggerImpl. It provides a flexible API including method chaining, exception handling, and operator overloading.

Template Parameters
char_tThe character type (e.g., char, char8_t) used for logging.
Warning
All information needs to be managed by the underlying BasicLoggerImpl. Any form of extension over this class must be immune to object splicing.

Constructor & Destructor Documentation

◆ BasicLogger()

template<typename char_t >
CppTrail::BasicLogger< char_t >::BasicLogger ( std::shared_ptr< BasicLoggerImpl< char_t > >  pLogger)
inlineprotected

Protected constructor for derived factories.

Parameters
pLoggerA shared pointer to a concrete implementation.

◆ ~BasicLogger()

template<typename char_t >
CppTrail::BasicLogger< char_t >::~BasicLogger ( )
inlineprotected

Destructor that ensures a graceful shutdown of the logger.

BasicLogger follows an RAII (Resource Acquisition Is Initialization) pattern. If this specific instance is the last remaining handle (use_count == 1) to the underlying implementation, it will automatically call stop() and join() to ensure all pending logs are processed and resources are freed before the implementation is destroyed.

Note
If other copies of this BasicLogger exist, the destructor will simply decrement the shared reference count without stopping the service.

Member Function Documentation

◆ critical() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::critical ( const char_t *  sMsg)
inline

Critical wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ critical() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::critical ( string_type  sMessage)
inline

Submits a CRITICAL level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ critical() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::critical ( string_view_type  sMsg)
inline

Critical wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ debug() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::debug ( const char_t *  sMsg)
inline

Debug wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ debug() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::debug ( string_type  sMessage)
inline

Submits a DEBUG level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ debug() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::debug ( string_view_type  sMsg)
inline

Debug wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ error() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::error ( const char_t *  sMsg)
inline

Error wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ error() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::error ( string_type  sMessage)
inline

Submits an ERROR level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ error() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::error ( string_view_type  sMsg)
inline

Error wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ fatal() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::fatal ( const char_t *  sMsg)
inline

Fatal wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ fatal() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::fatal ( string_type  sMessage)
inline

Submits a FATAL level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ fatal() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::fatal ( string_view_type  sMsg)
inline

Fatal wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ info() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::info ( const char_t *  sMsg)
inline

Info wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ info() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::info ( string_type  sMessage)
inline

Submits an INFO level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ info() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::info ( string_view_type  sMsg)
inline

Info wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ join()

template<typename char_t >
void CppTrail::BasicLogger< char_t >::join ( )
inline

Blocks until the asynchronous shutdown sequence is complete.

This method safely checks if the underlying implementation is an asynchronous type via dynamic_cast. If it is, it waits for background threads to finish. For synchronous loggers, this is a no-op.

◆ log() [1/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( const Level  nLevel,
const char_t *  sMessage 
)
inline

Logs a message view with a specific severity level.

Parameters
nLevelThe severity level.
sMessageThe string litteral to log.
Returns
BasicLogger& A reference to this logger.

◆ log() [2/10]

template<typename char_t >
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLogger & CppTrail::BasicLogger< char_t >::log ( const Level  nLevel,
const std::exception &  oException 
)
inline

Logs an exception with a specific severity level.

Template Parameters
TInternal type for SFINAE check.
Parameters
nLevelThe severity level.
oExceptionThe exception object.
Returns
BasicLogger& A reference to this logger.
Note
Only available for char-based loggers.

◆ log() [3/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( const Level  nLevel,
string_type  sMessage 
)
inline

Logs a message with a specific severity level.

Parameters
nLevelThe severity level (from the Level enum).
sMessageThe string content of the log.
Returns
BasicLogger& A reference to this logger to allow method chaining.

◆ log() [4/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( const Level  nLevel,
string_view_type  sMessage 
)
inline

Logs a message view with a specific severity level.

Parameters
nLevelThe severity level.
sMessageThe string view to log.
Returns
BasicLogger& A reference to this logger.

◆ log() [5/10]

template<typename char_t >
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLogger & CppTrail::BasicLogger< char_t >::log ( const std::exception &  oException)
inline

Logs an exception with the default ERROR level.

Template Parameters
TInternal type for SFINAE check.
Parameters
oExceptionThe exception object.
Returns
BasicLogger& A reference to this logger.
Note
Only available for char-based loggers.

◆ log() [6/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( message_type  oMessage)
inline

Submits a pre-constructed message object to the logger.

Parameters
oMessageThe message implementation to be processed.
Returns
BasicLogger& A reference to this logger to allow method chaining.

◆ log() [7/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( string_type  sLevel,
const char_t *  sMessage 
)
inline

Logs a message view with a custom string level.

Parameters
sLevelThe custom level name.
sMessageThe string litteral to log.
Returns
BasicLogger& A reference to this logger.

◆ log() [8/10]

template<typename char_t >
template<typename T = char_t, typename std::enable_if< std::is_same< T, char >::value, int >::type = 0>
BasicLogger & CppTrail::BasicLogger< char_t >::log ( string_type  sLevel,
const std::exception &  oException 
)
inline

Logs an exception with a custom string level.

Template Parameters
TInternal type for SFINAE check.
Parameters
sLevelThe custom level name.
oExceptionThe exception object.
Returns
BasicLogger& A reference to this logger.
Note
Only available for char-based loggers.

◆ log() [9/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( string_type  sLevel,
string_type  sMessage 
)
inline

Logs a message with a custom string-based level.

Parameters
sLevelA custom string to represent the log category or level.
sMessageThe string content of the log.
Returns
BasicLogger& A reference to this logger to allow method chaining.

◆ log() [10/10]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::log ( string_type  sLevel,
string_view_type  sMessage 
)
inline

Logs a message view with a custom string level.

Parameters
sLevelThe custom level name.
sMessageThe string view to log.
Returns
BasicLogger& A reference to this logger.

◆ message() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::message ( const char_t *  sMsg)
inline

Message wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ message() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::message ( string_type  sMessage)
inline

Submits a MESSAGE level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ message() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::message ( string_view_type  sMsg)
inline

Message wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ signalStop()

template<typename char_t >
void CppTrail::BasicLogger< char_t >::signalStop ( )
inline

Initiates an asynchronous shutdown request.

Signals the logger to begin closing, allowing the calling thread to continue execution immediately. Use join() later to ensure completion.

◆ start()

template<typename char_t >
void CppTrail::BasicLogger< char_t >::start ( )
inline

Starts the underlying logging service.

Depending on the implementation, this may initialize resources, open files, or spawn background worker threads.

◆ status()

template<typename char_t >
Status CppTrail::BasicLogger< char_t >::status ( )
inline

Retrieves the current operational status of the logger.

Returns
The current Status (e.g., STARTING, RUNNING, STOPPED, etc.).

◆ stop()

template<typename char_t >
void CppTrail::BasicLogger< char_t >::stop ( )
inline

Performs a synchronous shutdown of the logger.

This method triggers the stop sequence and waits until the service has fully terminated and all resources are released.

◆ success() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::success ( const char_t *  sMsg)
inline

Success wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ success() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::success ( string_type  sMessage)
inline

Submits a SUCCESS level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ success() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::success ( string_view_type  sMsg)
inline

Success wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ trace() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::trace ( const char_t *  sMsg)
inline

Trace wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ trace() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::trace ( string_type  sMessage)
inline

Submits a TRACE level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ trace() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::trace ( string_view_type  sMsg)
inline

Trace wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ warning() [1/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::warning ( const char_t *  sMsg)
inline

Warning wrapper for string litterals.

Parameters
sMsgMessage view.
Returns
Logger reference.

◆ warning() [2/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::warning ( string_type  sMessage)
inline

Submits a WARNING level log message.

Parameters
sMessageThe message content.
Returns
BasicLogger& A reference to this logger.

◆ warning() [3/3]

template<typename char_t >
BasicLogger & CppTrail::BasicLogger< char_t >::warning ( string_view_type  sMsg)
inline

Warning wrapper for string views.

Parameters
sMsgMessage view.
Returns
Logger reference.

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