11     template <
typename... Ts> 
void raw(std::ostream& os, Ts... msg) {
    12         (std::cout << ... << msg);
    13         std::cout << std::endl;
    16     template <
typename... Ts> 
void warning(Ts... msg) {
    19                 raw(std::cout, 
"\033[0;33mWARN: ", msg..., 
"\033[0m");
    21                 raw(std::cout, 
"WARN: ", msg...);
    25     template <
typename... Ts> 
void error(Ts... msg) {
    28                 raw(std::cerr, 
"\033[0;31mERROR: ", msg..., 
"\033[0m");
    30                 raw(std::cerr, 
"ERROR: ", msg...);
    34     template <
typename... Ts> 
void info(Ts... msg) {
    36             raw(std::cout, 
"INFO: ", msg...);
    39     template <
typename... Ts> 
void debug(Ts... msg) {
    40         if (isDebug && !isQuiet) {
    42                 raw(std::cout, 
"\033[0;32mDEBUG: ", msg..., 
"\033[0m");
    44                 raw(std::cout, 
"DEBUG: ", msg...);
    55     bool isColored = 
false;
 void raw(std::ostream &os, Ts...msg)
Definition: logger.hpp:11
void setColored(bool b)
Definition: logger.hpp:50
void setDebug(bool b)
Definition: logger.hpp:49
void setQuiet(bool b)
Definition: logger.hpp:48
Logger logger
Definition: logger.hpp:58
void error(Ts...msg)
Definition: logger.hpp:25
void info(Ts...msg)
Definition: logger.hpp:34
void warning(Ts...msg)
Definition: logger.hpp:16
void debug(Ts...msg)
Definition: logger.hpp:39