uatools 1.0.0
 
Loading...
Searching...
No Matches
eso::uatools::protocol::base::Logger Class Referenceabstract

Abstract logger; downstream supplies an implementation. More...

#include <logger.hpp>

Public Member Functions

 Logger ()=default
 
virtual ~Logger ()=default
 
 Logger (const Logger &)=delete
 
Loggeroperator= (const Logger &)=delete
 
 Logger (Logger &&)=delete
 
Loggeroperator= (Logger &&)=delete
 
virtual void Emit (LogLevel level, const std::string &message)=0
 Deliver one already-formatted log line.
 
virtual void Throw (const std::string &message)
 Log at error level and then throw.
 
void SetLogLevel (LogLevel level) noexcept
 
LogLevel GetLogLevel () const noexcept
 
Convenience wrappers

These funnel through Emit() and are provided so that call-site code reads naturally without naming the level enum. The UAT* macros use them.

void Trace (const std::string &m)
 
void Debug (const std::string &m)
 
void Info (const std::string &m)
 
void Warning (const std::string &m)
 
void Error (const std::string &m)
 

Protected Attributes

LogLevel m_level {LogLevel::INFO}
 

Detailed Description

Abstract logger; downstream supplies an implementation.

Subclasses must override Emit() (and may override Throw() to customise the exception type or to perform side-effects such as errAdd before throwing). All other methods are convenience wrappers that funnel through Emit().

Implementations are free to add their own filtering on top of the threshold maintained here (e.g. CII's per-logger config). The threshold on this base class governs the early-out in the UAT* macros — its purpose is to keep disabled-level log calls cheap, not to be the single source of truth for routing decisions in the underlying backend.

Constructor & Destructor Documentation

◆ Logger() [1/3]

eso::uatools::protocol::base::Logger::Logger ( )
default

◆ ~Logger()

virtual eso::uatools::protocol::base::Logger::~Logger ( )
virtualdefault

◆ Logger() [2/3]

eso::uatools::protocol::base::Logger::Logger ( const Logger & )
delete

◆ Logger() [3/3]

eso::uatools::protocol::base::Logger::Logger ( Logger && )
delete

Member Function Documentation

◆ Debug()

void eso::uatools::protocol::base::Logger::Debug ( const std::string & m)
inline

◆ Emit()

virtual void eso::uatools::protocol::base::Logger::Emit ( LogLevel level,
const std::string & message )
pure virtual

Deliver one already-formatted log line.

Subclasses route this to their backend (log4cplus, CII, VLT cutePRINT, stdout, …). message has no trailing newline; backends add one if their format requires it.

◆ Error()

void eso::uatools::protocol::base::Logger::Error ( const std::string & m)
inline

◆ GetLogLevel()

LogLevel eso::uatools::protocol::base::Logger::GetLogLevel ( ) const
inlinenoexcept

◆ Info()

void eso::uatools::protocol::base::Logger::Info ( const std::string & m)
inline

◆ operator=() [1/2]

Logger & eso::uatools::protocol::base::Logger::operator= ( const Logger & )
delete

◆ operator=() [2/2]

Logger & eso::uatools::protocol::base::Logger::operator= ( Logger && )
delete

◆ SetLogLevel()

void eso::uatools::protocol::base::Logger::SetLogLevel ( LogLevel level)
inlinenoexcept

◆ Throw()

void eso::uatools::protocol::base::Logger::Throw ( const std::string & message)
virtual

Log at error level and then throw.

Default implementation emits at ERROR and throws std::runtime_error. Subclasses may override to throw a different exception type or to record the error in a platform-specific error stack (e.g. VLT errAdd) before throwing.

◆ Trace()

void eso::uatools::protocol::base::Logger::Trace ( const std::string & m)
inline

◆ Warning()

void eso::uatools::protocol::base::Logger::Warning ( const std::string & m)
inline

Member Data Documentation

◆ m_level

LogLevel eso::uatools::protocol::base::Logger::m_level {LogLevel::INFO}
protected

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