7 #if !defined(_Logging_h_) 83 virtual void log(
const char *fmt, ...);
87 virtual void log(
const std::string &msg) {
log(msg.c_str()); }
94 virtual void log(
const char *fmt, va_list args);
97 virtual void log(
log_level_t level,
const char *fmt, va_list args);
106 virtual void _log(
const char *msg) = 0;
127 static inline Logger *getLogger() {
return s_logger; }
135 static void log(
const char *fmt, ...);
139 static void log(
const std::string &msg);
179 : m_logger(
Log::getLogger())
183 m_saved = m_logger->getOutputLevel();
184 m_logger->setOutputLevel(level);
196 m_logger->setOutputLevel(level);
216 virtual void _log(
const char *msg);
219 #endif // _Logging_h_ Logger * m_logger
The logger instance we're controlling.
Definition: apps/elftosb/common/Logging.h:204
virtual ~Logger()
Destructor.
Definition: apps/elftosb/common/Logging.h:68
SetOutputLevel(Logger::log_level_t level)
Default constructor.
Definition: apps/elftosb/common/Logging.h:178
The lowest level, for messages that must always be logged.
Definition: apps/elftosb/common/Logging.h:50
log_level_t getFilterLevel() const
Returns the current logging filter level.
Definition: apps/elftosb/common/Logging.h:74
The normal log level, for status messages.
Definition: apps/elftosb/common/Logging.h:53
For fatal error messages.
Definition: apps/elftosb/common/Logging.h:51
For internal reporting.
Definition: apps/elftosb/common/Logging.h:55
static void setLogger(Logger *logger)
Sets the global logger singleton instance.
Definition: apps/elftosb/common/Logging.h:130
log_level_t m_level
The current log output level.
Definition: apps/elftosb/common/Logging.h:102
virtual void log(log_level_t level, const std::string &msg)
Log a string output at a specific output level.
Definition: apps/elftosb/common/Logging.h:92
SetOutputLevel(Logger *logger, Logger::log_level_t level)
Constructor.
Definition: apps/elftosb/common/Logging.h:191
log_level_t getOutputLevel() const
Returns the current logging output level.
Definition: apps/elftosb/common/Logging.h:78
static Logger * s_logger
The single global logger instance.
Definition: apps/elftosb/common/Logging.h:149
For non-fatal warning messages.
Definition: apps/elftosb/common/Logging.h:52
void setFilterLevel(log_level_t level)
Changes the logging level to level.
Definition: apps/elftosb/common/Logging.h:72
~SetOutputLevel()
Destructor.
Definition: apps/elftosb/common/Logging.h:202
virtual void log(const std::string &msg)
Log a string object.
Definition: apps/elftosb/common/Logging.h:87
Highest log level; verbose debug logging.
Definition: apps/elftosb/common/Logging.h:56
Logger::log_level_t m_saved
Original logging output level.
Definition: apps/elftosb/common/Logging.h:205
Wraps a set of static functions for easy global logging access.
Definition: apps/elftosb/common/Logging.h:122
virtual void log(const char *fmt,...)
Log with format.
Definition: apps/elftosb/common/Logging.cpp:16
void setOutputLevel(log_level_t level)
Changes the logging output level to level.
Definition: apps/elftosb/common/Logging.h:76
Logger()
Default constructor.
Definition: apps/elftosb/common/Logging.h:61
log_level_t m_filter
The current logging filter level.
Definition: apps/elftosb/common/Logging.h:101
log_level_t
Logging levels.
Definition: apps/elftosb/common/Logging.h:48
virtual void _log(const char *msg)=0
The base pure virtual logging function implemented by subclasses.
Simple logger that writes to stdout.
Definition: apps/elftosb/common/Logging.h:212
Utility class to temporarily change the logging output level.
Definition: apps/elftosb/common/Logging.h:171
For verbose status messages.
Definition: apps/elftosb/common/Logging.h:54
Base logger class.
Definition: apps/elftosb/common/Logging.h:44