List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
utl::ErrorLogger Class Reference

Class to handle routing and writing of error messages. More...

#include "utl/ErrorLogger.h"

Inheritance diagram for utl::ErrorLogger:
Inheritance graph
[legend]

Public Types

enum  ESeverityLevel {
  eDebug = -1, eMinSeverity = eDebug, eInfo = 0, eWarning = 1,
  eError = 2, eFatal = 3, eMaxSeverity = eFatal
}
 Message severity levels. More...
 
typedef Verbosity::EVerbosity EVerbosity
 

Public Member Functions

ESeverityLevel GetMinSeverity () const
 Get the minimal severity. More...
 
std::string GetSeverityName (const ESeverityLevel severity) const
 Get string name for severity level. More...
 
EVerbosity GetVerbosity () const
 Get the verbosity level. More...
 
bool HasColor () const
 
void Log (const ESeverityLevel severity, const std::string &functionName, const std::string &fileName, const int lineNumber, const std::string &message, EVerbosity verbosity=Verbosity::eDefault, bool stripBaseDir=true) const
 General interface for logging a message. More...
 
void Log (const ESeverityLevel severity, const std::string &functionName, const std::string &fileName, const int lineNumber, const std::ostringstream &message, const EVerbosity verbosity=Verbosity::eDefault, bool stripBaseDir=true) const
 Dump message from ostringstream instead of of a string. More...
 
void Log (const ESeverityLevel severity, const std::string &functionName, const std::string &fileName, const int lineNumber, const boost::format &message, const EVerbosity verbosity=Verbosity::eDefault, bool stripBaseDir=true) const
 Dump message from boost::format instead of of a string. More...
 
void SetColorOutput (const bool color)
 
void SetMinSeverity (const ESeverityLevel severity)
 Set minimal severity for reporting. More...
 
void SetStream (std::ostream &stream)
 
void SetVerbosity (const EVerbosity verbosity)
 Set the verbosity level. More...
 
void WriteErrorMessagesToStream ()
 

Static Public Member Functions

static ErrorLoggerGetInstance ()
 

Private Member Functions

 ErrorLogger ()
 
 ErrorLogger (const ErrorLogger &er)
 
ErrorLoggeroperator= (const ErrorLogger &rhs)
 
 ~ErrorLogger ()=default
 

Private Attributes

unsigned int fBaseDirLength = 0
 
bool fColorOutput = false
 
std::map< std::string, int > fListOfErrorMessages
 
ESeverityLevel fMinSeverity = eInfo
 
std::ostream * fOStream = nullptr
 Current stream for logging messages. More...
 
EVerbosity fVerbosity = Verbosity::eFileInfo
 

Friends

class LeakingSingleton< ErrorLogger >
 

Detailed Description

Class to handle routing and writing of error messages.

Interface to the Offline Error logger.

Author
Lukas Nellen
Date
24-Jan-2003
Todo:

General routing

Improve message formating

Definition at line 34 of file ErrorLogger.h.

Member Typedef Documentation

Definition at line 37 of file ErrorLogger.h.

Member Enumeration Documentation

Message severity levels.

Enumerator
eDebug 

Debugging message.

eMinSeverity 
eInfo 

General (informational) message.

eWarning 

Warning message.

eError 

Error message.

eFatal 

Fatal error message.

eMaxSeverity 

Definition at line 40 of file ErrorLogger.h.

Constructor & Destructor Documentation

ErrorLogger::ErrorLogger ( )
private

Definition at line 15 of file ErrorLogger.cc.

utl::ErrorLogger::~ErrorLogger ( )
privatedefault
utl::ErrorLogger::ErrorLogger ( const ErrorLogger er)
private

Member Function Documentation

static ErrorLogger & utl::LeakingSingleton< ErrorLogger >::GetInstance ( )
inlinestaticinherited
ESeverityLevel utl::ErrorLogger::GetMinSeverity ( ) const
inline

Get the minimal severity.

Definition at line 99 of file ErrorLogger.h.

References fMinSeverity.

string ErrorLogger::GetSeverityName ( const ESeverityLevel  severity) const

Get string name for severity level.

Definition at line 22 of file ErrorLogger.cc.

References eMinSeverity, and HasColor().

Referenced by Log().

EVerbosity utl::ErrorLogger::GetVerbosity ( ) const
inline

Get the verbosity level.

Definition at line 92 of file ErrorLogger.h.

References fVerbosity.

bool utl::ErrorLogger::HasColor ( ) const
inline

Definition at line 102 of file ErrorLogger.h.

References fColorOutput.

Referenced by GetSeverityName(), and WriteErrorMessagesToStream().

void ErrorLogger::Log ( const ESeverityLevel  severity,
const std::string &  functionName,
const std::string &  fileName,
const int  lineNumber,
const std::string &  message,
EVerbosity  verbosity = Verbosity::eDefault,
bool  stripBaseDir = true 
) const

General interface for logging a message.

Write and format an error message. For verbose message logging, the file name and line number are added to the beginning of the file. The format is such that (X)Emacs can jump directly to the corresponding line in the source file.

Definition at line 89 of file ErrorLogger.cc.

References utl::Verbosity::eDefault, eError, utl::Verbosity::eFileInfo, utl::Verbosity::eFunction, utl::Verbosity::eSeverity, utl::Verbosity::eTerse, fBaseDirLength, fListOfErrorMessages, fMinSeverity, fOStream, fVerbosity, and GetSeverityName().

Referenced by Log(), and testErrorLogger::testLowLevel().

void utl::ErrorLogger::Log ( const ESeverityLevel  severity,
const std::string &  functionName,
const std::string &  fileName,
const int  lineNumber,
const std::ostringstream &  message,
const EVerbosity  verbosity = Verbosity::eDefault,
bool  stripBaseDir = true 
) const
inline

Dump message from ostringstream instead of of a string.

Definition at line 60 of file ErrorLogger.h.

References Log().

void utl::ErrorLogger::Log ( const ESeverityLevel  severity,
const std::string &  functionName,
const std::string &  fileName,
const int  lineNumber,
const boost::format &  message,
const EVerbosity  verbosity = Verbosity::eDefault,
bool  stripBaseDir = true 
) const
inline

Dump message from boost::format instead of of a string.

Definition at line 71 of file ErrorLogger.h.

ErrorLogger& utl::ErrorLogger::operator= ( const ErrorLogger rhs)
private
void utl::ErrorLogger::SetColorOutput ( const bool  color)
inline

Definition at line 101 of file ErrorLogger.h.

References fColorOutput.

Referenced by SetStream().

void utl::ErrorLogger::SetMinSeverity ( const ESeverityLevel  severity)
inline

Set minimal severity for reporting.

Definition at line 95 of file ErrorLogger.h.

References fMinSeverity.

Referenced by fwk::CentralConfig::ReadConfig().

void utl::ErrorLogger::SetStream ( std::ostream &  stream)
inline

Set the error logging stream This method will be replaced by a more general mechanism for the routing of error messages.

Definition at line 85 of file ErrorLogger.h.

References fOStream, and SetColorOutput().

Referenced by un2::CalcDX(), testErrorLogger::testG4Logging(), testErrorLogger::testLowLevel(), testErrorLogger::testMacros(), testErrorLogger::testStream(), and testErrorLogger::testVerbosity().

void utl::ErrorLogger::SetVerbosity ( const EVerbosity  verbosity)
inline
void ErrorLogger::WriteErrorMessagesToStream ( )

Definition at line 130 of file ErrorLogger.cc.

References fListOfErrorMessages, fOStream, HasColor(), and WARNING.

Friends And Related Function Documentation

friend class LeakingSingleton< ErrorLogger >
friend

Definition at line 121 of file ErrorLogger.h.

Member Data Documentation

unsigned int utl::ErrorLogger::fBaseDirLength = 0
private

Definition at line 115 of file ErrorLogger.h.

Referenced by Log().

bool utl::ErrorLogger::fColorOutput = false
private

Definition at line 116 of file ErrorLogger.h.

Referenced by HasColor(), and SetColorOutput().

std::map<std::string, int> utl::ErrorLogger::fListOfErrorMessages
mutableprivate

Definition at line 119 of file ErrorLogger.h.

Referenced by Log(), and WriteErrorMessagesToStream().

ESeverityLevel utl::ErrorLogger::fMinSeverity = eInfo
private

Definition at line 117 of file ErrorLogger.h.

Referenced by GetMinSeverity(), Log(), and SetMinSeverity().

std::ostream* utl::ErrorLogger::fOStream = nullptr
private

Current stream for logging messages.

Definition at line 113 of file ErrorLogger.h.

Referenced by Log(), SetStream(), and WriteErrorMessagesToStream().

EVerbosity utl::ErrorLogger::fVerbosity = Verbosity::eFileInfo
private

Definition at line 114 of file ErrorLogger.h.

Referenced by GetVerbosity(), Log(), and SetVerbosity().


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

, generated on Tue Sep 26 2023.