1 #ifndef _utl_ErrorLogger_h_
2 #define _utl_ErrorLogger_h_
10 # include <boost/format.hpp>
13 #include <utl/Singleton.h>
14 #include <utl/Verbosity.h>
52 const std::string& functionName,
53 const std::string& fileName,
55 const std::string& message,
57 bool stripBaseDir =
true)
const;
61 const std::string& functionName,
62 const std::string& fileName,
64 const std::ostringstream& message,
66 bool stripBaseDir =
true)
const
67 {
Log(severity, functionName, fileName, lineNumber, message.str(), verbosity, stripBaseDir); }
72 const std::string& functionName,
73 const std::string& fileName,
75 const boost::format& message,
77 bool stripBaseDir =
true)
const
78 {
Log(severity, functionName, fileName, lineNumber, message.str(), verbosity, stripBaseDir); }
136 #define LOG_MESSAGE_(severity, message) \
137 utl::ErrorLogger::GetInstance().Log(severity, __func__, __FILE__, __LINE__, \
141 #define LOG_TERSE_MESSAGE_(severity, message) \
142 utl::ErrorLogger::GetInstance().Log(severity, __func__, __FILE__, __LINE__, \
143 message, utl::Verbosity::eFunction)
155 # define DEBUGLOG(message) LOG_MESSAGE_(utl::ErrorLogger::eDebug, message)
157 # define DEBUGLOG(message)
161 #define INFO(message) LOG_MESSAGE_(utl::ErrorLogger::eInfo, message)
162 #define WARNING(message) LOG_MESSAGE_(utl::ErrorLogger::eWarning, message)
164 #define ERROR(message) LOG_MESSAGE_(utl::ErrorLogger::eError, message)
166 #define FATAL(message) LOG_MESSAGE_(utl::ErrorLogger::eFatal, message)
169 #define LOGG4COUT(message) utl::ErrorLogger::GetInstance().Log(utl::ErrorLogger::eInfo, \
170 "G4COut", "", 0, message, utl::Verbosity::eSeverity)
171 #define LOGG4CERR(message) utl::ErrorLogger::GetInstance().Log(utl::ErrorLogger::eError, \
172 "G4CErr", "", 0, message, utl::Verbosity::eSeverity)
175 #define INFO_TERSE(message) LOG_TERSE_MESSAGE_(utl::ErrorLogger::eInfo, message)
176 #define WARNING_TERSE(message) LOG_TERSE_MESSAGE_(utl::ErrorLogger::eWarning, message)
178 #define ERROR_TERSE(message) LOG_TERSE_MESSAGE_(utl::ErrorLogger::eError, message)
180 #define FATAL_TERSE(message) LOG_TERSE_MESSAGE_(utl::ErrorLogger::eFatal, message)
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.
Class to handle routing and writing of error messages.
Include filename and line number.
ErrorLogger & operator=(const ErrorLogger &rhs)
void SetMinSeverity(const ESeverityLevel severity)
Set minimal severity for reporting.
ESeverityLevel GetMinSeverity() const
Get the minimal severity.
void SetColorOutput(const bool color)
General (informational) message.
void SetVerbosity(const EVerbosity verbosity)
Set the verbosity level.
void SetStream(std::ostream &stream)
ESeverityLevel fMinSeverity
void WriteErrorMessagesToStream()
std::map< std::string, int > fListOfErrorMessages
CRTP for leaking singleton.
unsigned int fBaseDirLength
std::ostream * fOStream
Current stream for logging messages.
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.
Verbosity::EVerbosity EVerbosity
ESeverityLevel
Message severity levels.
std::string GetSeverityName(const ESeverityLevel severity) const
Get string name for severity level.
EVerbosity GetVerbosity() const
Get the verbosity level.
use default verbosity from error logger