Skip to content

Commit 1e33f8b

Browse files
committed
Utils: improve logger
Add another log level (INFO) and provide common log function. Part of #28
1 parent ae279be commit 1e33f8b

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/Utils/Logger.hpp

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@
3737

3838
enum LogLevel {
3939
DEBUG = 0,
40-
WARNING = 1,
41-
ERROR = 2
40+
INFO = 1,
41+
WARNING = 2,
42+
ERROR = 3
4243
};
4344

4445
static inline const char*
4546
logLevelToStr(LogLevel lvl)
4647
{
4748
switch (lvl) {
4849
case DEBUG : return "DEBUG";
49-
case WARNING : return "WARNING";
50+
case INFO : return "INFO ";
51+
case WARNING : return "WARN ";
5052
case ERROR : return "ERROR";
53+
default : return "UNDEF";
5154
}
5255
assert(0 && "Unknown log level");
5356
return "Unknown log level";
@@ -99,6 +102,15 @@ inline Logger gLogger(DEBUG);
99102
inline Logger gLogger(ERROR);
100103
#endif
101104

102-
#define LOG_DEBUG(...) gLogger.log(std::cout, DEBUG, __FILE__, __LINE__, __VA_ARGS__)
103-
#define LOG_WARNING(...) gLogger.log(std::cout, WARNING, __FILE__, __LINE__, __VA_ARGS__)
104-
#define LOG_ERROR(...) gLogger.log(std::cerr, ERROR, __FILE__, __LINE__, __VA_ARGS__)
105+
template <class... ARGS>
106+
void
107+
log(LogLevel level, const char *file, int line, ARGS&& ...args)
108+
{
109+
gLogger.log(level == ERROR ? std::cerr : std::cout,
110+
level, file, line, std::forward<ARGS>(args)...);
111+
}
112+
113+
#define LOG_DEBUG(...) log(DEBUG, __FILE__, __LINE__, __VA_ARGS__)
114+
#define LOG_INFO(...) log(INFO, __FILE__, __LINE__, __VA_ARGS__)
115+
#define LOG_WARNING(...) log(WARNING, __FILE__, __LINE__, __VA_ARGS__)
116+
#define LOG_ERROR(...) log(ERROR, __FILE__, __LINE__, __VA_ARGS__)

0 commit comments

Comments
 (0)