Himalaya
Namespaces | Macros | Enumerations
Logger.hpp File Reference

Implementation of logging macros. More...

#include <iostream>
Include dependency graph for Logger.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 himalaya
 

Macros

#define ENABLE_COLORS
 
#define ENABLE_DEBUG
 
#define ENABLE_VERBOSE
 
#define LOG_OUTPUT_STREAM   std::cerr
 
#define VERBOSE_MSG(message)   LOG(himalaya::kVerbose, message)
 
#define DEBUG_MSG(message)   LOG(himalaya::kDebug, message)
 
#define INFO_MSG(message)   LOG(himalaya::kInfo, message)
 
#define WARNING_MSG(message)   LOG(himalaya::kWarning, message)
 
#define ERROR_MSG(message)   LOG(himalaya::kError, message)
 
#define FATAL_MSG(message)
 
#define PRINT_PREFIX(level)
 
#define PRINT_FILE_LINE(level)
 
#define PRINT_COLOR_CODE(level)
 
#define RESET_COLOR(level)
 
#define PRINT_MESSAGE(level, message)
 
#define PRINT_ENDL(level)
 
#define LOG(level, message)
 

Enumerations

enum  himalaya::ELogLevel {
  himalaya::kVerbose, himalaya::kDebug, himalaya::kInfo, himalaya::kWarning,
  himalaya::kError, himalaya::kFatal
}
 

Detailed Description

Implementation of logging macros.

The following message logger macros are available:

VERBOSE_MSG(message) prints a verbose message DEBUG_MSG(message) prints a debug message INFO_MSG(message) prints information WARNING_MSG(message) prints a warning ERROR_MSG(message) prints an error FATAL_MSG(message) prints an error and throws an exception

Verbose messages are only printed in ENABLE_VERBOSE is defined. Debug messages are only printed in ENABLE_DEBUG is defined. Colored output can be enabled if ENABLE_COLORS is defined. All output can be disabled if ENABLE_SILENT is defined.

Definition in file Logger.hpp.

Macro Definition Documentation

◆ DEBUG_MSG

#define DEBUG_MSG (   message)    LOG(himalaya::kDebug, message)

Definition at line 60 of file Logger.hpp.

◆ ENABLE_COLORS

#define ENABLE_COLORS

The following definitions may be put into a config.h file, generated by cmake.

Definition at line 35 of file Logger.hpp.

◆ ENABLE_DEBUG

#define ENABLE_DEBUG

Definition at line 36 of file Logger.hpp.

◆ ENABLE_VERBOSE

#define ENABLE_VERBOSE

Definition at line 37 of file Logger.hpp.

◆ ERROR_MSG

#define ERROR_MSG (   message)    LOG(himalaya::kError, message)

Definition at line 67 of file Logger.hpp.

◆ FATAL_MSG

#define FATAL_MSG (   message)
Value:
do { \
LOG(himalaya::kFatal, message); \
throw std::runtime_error(message); \
} while (false)

Definition at line 76 of file Logger.hpp.

◆ INFO_MSG

#define INFO_MSG (   message)    LOG(himalaya::kInfo, message)

Definition at line 65 of file Logger.hpp.

◆ LOG

#define LOG (   level,
  message 
)
Value:
do { \
PRINT_COLOR_CODE(level); \
PRINT_PREFIX(level); \
PRINT_FILE_LINE(level); \
RESET_COLOR(level); \
PRINT_MESSAGE(level, message); \
PRINT_ENDL(level); \
} while (false)

Definition at line 166 of file Logger.hpp.

◆ LOG_OUTPUT_STREAM

#define LOG_OUTPUT_STREAM   std::cerr

Definition at line 51 of file Logger.hpp.

◆ PRINT_COLOR_CODE

#define PRINT_COLOR_CODE (   level)
Value:
do { \
switch (level) { \
case himalaya::kVerbose: LOG_OUTPUT_STREAM << "\033[0;36m"; break; \
case himalaya::kDebug: LOG_OUTPUT_STREAM << "\033[0;34m"; break; \
case himalaya::kInfo: LOG_OUTPUT_STREAM << "\033[1;34m"; break; \
case himalaya::kWarning: LOG_OUTPUT_STREAM << "\033[0;31m"; break; \
case himalaya::kError: LOG_OUTPUT_STREAM << "\033[1;31m"; break; \
case himalaya::kFatal: LOG_OUTPUT_STREAM << "\033[41;1;37m"; break; \
default: \
break; \
} \
} while (false)
#define LOG_OUTPUT_STREAM
Definition: Logger.hpp:51

Definition at line 120 of file Logger.hpp.

◆ PRINT_ENDL

#define PRINT_ENDL (   level)
Value:
do { \
LOG_OUTPUT_STREAM << std::endl; \
} while (false)

Definition at line 156 of file Logger.hpp.

◆ PRINT_FILE_LINE

#define PRINT_FILE_LINE (   level)
Value:
do { \
switch (level) { \
LOG_OUTPUT_STREAM << "(file: " << __FILE__ \
<< ", line: " << __LINE__ << ") "; \
break; \
default: \
break; \
} \
} while (false)

Definition at line 104 of file Logger.hpp.

◆ PRINT_MESSAGE

#define PRINT_MESSAGE (   level,
  message 
)
Value:
do { \
LOG_OUTPUT_STREAM << message; \
} while (false)

Definition at line 147 of file Logger.hpp.

◆ PRINT_PREFIX

#define PRINT_PREFIX (   level)
Value:
do { \
switch (level) { \
case himalaya::kVerbose: LOG_OUTPUT_STREAM << "Himalaya verbose: "; break; \
case himalaya::kDebug: LOG_OUTPUT_STREAM << "Himalaya debug: "; break; \
case himalaya::kInfo: LOG_OUTPUT_STREAM << "Himalaya info: "; break; \
case himalaya::kWarning: LOG_OUTPUT_STREAM << "Himalaya warning: "; break; \
case himalaya::kError: LOG_OUTPUT_STREAM << "Himalaya error: "; break; \
case himalaya::kFatal: LOG_OUTPUT_STREAM << "Himalaya fatal error: "; break; \
default: \
break; \
} \
} while (false)
#define LOG_OUTPUT_STREAM
Definition: Logger.hpp:51

Definition at line 86 of file Logger.hpp.

◆ RESET_COLOR

#define RESET_COLOR (   level)
Value:
do { \
LOG_OUTPUT_STREAM << "\033[0m"; \
} while (false)

Definition at line 138 of file Logger.hpp.

◆ VERBOSE_MSG

#define VERBOSE_MSG (   message)    LOG(himalaya::kVerbose, message)

Definition at line 54 of file Logger.hpp.

◆ WARNING_MSG

#define WARNING_MSG (   message)    LOG(himalaya::kWarning, message)

Definition at line 66 of file Logger.hpp.