cppassist  1.0.0.f4fab4f962ff
C++ sanctuary for small but powerful and frequently required, stand alone features.
Public Types | Public Member Functions | Protected Attributes | List of all members
cppassist::LogMessageBuilder Class Reference

Stream interface to build LogMessage's from different kinds of primitive types. More...

#include <cppassist/include/cppassist/logging/LogMessageBuilder.h>

Collaboration diagram for cppassist::LogMessageBuilder:
Collaboration graph
[legend]

Public Types

using PrecisionManipulator = decltype(std::setprecision(0))
 
using FillManipulator = decltype(std::setfill( '0'))
 
using WidthManipulator = decltype(std::setw(0))
 

Public Member Functions

 LogMessageBuilder (int level, AbstractLogHandler *handler, const std::string &context)
 Constructor. More...
 
 LogMessageBuilder (const LogMessageBuilder &builder)
 Copy constructor. More...
 
virtual ~LogMessageBuilder ()
 Destructor. More...
 
LogMessageBuilderoperator<< (const char *c)
 
LogMessageBuilderoperator<< (const std::string &str)
 
LogMessageBuilderoperator<< (bool b)
 
LogMessageBuilderoperator<< (char c)
 
LogMessageBuilderoperator<< (int i)
 
LogMessageBuilderoperator<< (float f)
 
LogMessageBuilderoperator<< (double d)
 
LogMessageBuilderoperator<< (long double d)
 
LogMessageBuilderoperator<< (unsigned u)
 
LogMessageBuilderoperator<< (long l)
 
LogMessageBuilderoperator<< (long long l)
 
LogMessageBuilderoperator<< (unsigned long ul)
 
LogMessageBuilderoperator<< (unsigned long long ull)
 
LogMessageBuilderoperator<< (unsigned char uc)
 
LogMessageBuilderoperator<< (const void *pointer)
 
template<typename T >
LogMessageBuilderoperator<< (const T *pointer)
 
template<typename T >
LogMessageBuilderoperator<< (const std::vector< T > &vector)
 
template<typename T , std::size_t Count>
LogMessageBuilderoperator<< (const std::array< T, Count > &array)
 
LogMessageBuilderoperator<< (std::ostream &(*manipulator)(std::ostream &))
 
LogMessageBuilderoperator<< (std::ios_base &(*manipulator)(std::ios_base &))
 
LogMessageBuilderoperator<< (PrecisionManipulator manipulator)
 
LogMessageBuilderoperator<< (FillManipulator manipulator)
 
LogMessageBuilderoperator<< (WidthManipulator manipulator)
 

Protected Attributes

int m_level
 Current log level. More...
 
AbstractLogHandlerm_handler
 Log handler (must NOT be null!) More...
 
std::string m_context
 User define context string. More...
 
std::shared_ptr< std::stringstream > m_stream
 Used string stream. More...
 

Detailed Description

Stream interface to build LogMessage's from different kinds of primitive types.

The LogMessageBuilder is usually created by one of the global functions log, debug, warning, error or fatal. It works similar to streams and accepts a number of different types which will be converted to strings automatically. When it goes out of scope, it creates a LogMessage from all streamed objects and sends it to the log handler.

Typical usage of the LogMessageBuilder:

warning() << "This is warning number " << 3;
See also
logging.h
LogMessage
setLoggingHandler
setVerbosityLevel
log

Member Typedef Documentation

◆ PrecisionManipulator

using cppassist::LogMessageBuilder::PrecisionManipulator = decltype(std::setprecision(0))

◆ FillManipulator

using cppassist::LogMessageBuilder::FillManipulator = decltype(std::setfill('0'))

◆ WidthManipulator

using cppassist::LogMessageBuilder::WidthManipulator = decltype(std::setw(0))

Constructor & Destructor Documentation

◆ LogMessageBuilder() [1/2]

cppassist::LogMessageBuilder::LogMessageBuilder ( int  level,
AbstractLogHandler handler,
const std::string &  context 
)

Constructor.

Parameters
[in]levelLog level
[in]handlerLog handler (must NOT be null!)
[in]contextUser defined context string

◆ LogMessageBuilder() [2/2]

cppassist::LogMessageBuilder::LogMessageBuilder ( const LogMessageBuilder builder)

Copy constructor.

Parameters
[in]builderSource object

◆ ~LogMessageBuilder()

virtual cppassist::LogMessageBuilder::~LogMessageBuilder ( )
virtual

Destructor.

Member Function Documentation

◆ operator<<() [1/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( const char *  c)

◆ operator<<() [2/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( const std::string &  str)

◆ operator<<() [3/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( bool  b)

◆ operator<<() [4/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( char  c)

◆ operator<<() [5/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( int  i)

◆ operator<<() [6/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( float  f)

◆ operator<<() [7/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( double  d)

◆ operator<<() [8/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( long double  d)

◆ operator<<() [9/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( unsigned  u)

◆ operator<<() [10/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( long  l)

◆ operator<<() [11/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( long long  l)

◆ operator<<() [12/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( unsigned long  ul)

◆ operator<<() [13/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( unsigned long long  ull)

◆ operator<<() [14/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( unsigned char  uc)

◆ operator<<() [15/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( const void *  pointer)

◆ operator<<() [16/23]

template<typename T >
LogMessageBuilder & cppassist::LogMessageBuilder::operator<< ( const T *  pointer)

◆ operator<<() [17/23]

template<typename T >
LogMessageBuilder & cppassist::LogMessageBuilder::operator<< ( const std::vector< T > &  vector)

◆ operator<<() [18/23]

template<typename T , std::size_t Count>
LogMessageBuilder & cppassist::LogMessageBuilder::operator<< ( const std::array< T, Count > &  array)

◆ operator<<() [19/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( std::ostream &(*)(std::ostream &)  manipulator)

◆ operator<<() [20/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( std::ios_base &(*)(std::ios_base &)  manipulator)

◆ operator<<() [21/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( PrecisionManipulator  manipulator)

◆ operator<<() [22/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( FillManipulator  manipulator)

◆ operator<<() [23/23]

LogMessageBuilder& cppassist::LogMessageBuilder::operator<< ( WidthManipulator  manipulator)

Member Data Documentation

◆ m_level

int cppassist::LogMessageBuilder::m_level
protected

Current log level.

◆ m_handler

AbstractLogHandler* cppassist::LogMessageBuilder::m_handler
protected

Log handler (must NOT be null!)

◆ m_context

std::string cppassist::LogMessageBuilder::m_context
protected

User define context string.

◆ m_stream

std::shared_ptr<std::stringstream> cppassist::LogMessageBuilder::m_stream
protected

Used string stream.


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