diff options
Diffstat (limited to 'graphs/cpp/logger/logger.cc')
| -rw-r--r-- | graphs/cpp/logger/logger.cc | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/graphs/cpp/logger/logger.cc b/graphs/cpp/logger/logger.cc new file mode 100644 index 0000000..fa2fed1 --- /dev/null +++ b/graphs/cpp/logger/logger.cc @@ -0,0 +1,73 @@ +#include "logger.hh" + +#include <iostream> +#include <string> + +void LogMe::Logger::set_debug_level(logging_level level) +{ + level_ = level; +} +void LogMe::Logger::log(logging_level level, const std::string& msg) +{ + if (level_ >= level) + { + switch (level) + { + case DEBUG: + debug(msg); + break; + case INFO: + info(msg); + break; + case WARN: + warn(msg); + break; + case CRITICAL: + critical(msg); + break; + case ERROR: + error(msg); + break; + } + } +} + +void LogMe::Logger::debug(const std::string& msg) +{ + if (!output_stream_.is_open()) + std::cerr << "[DEBUG] - " << msg << "\n"; + else + output_stream_ << "[DEBUG] - " << msg << "\n"; +} + +void LogMe::Logger::info(const std::string& msg) +{ + if (!output_stream_.is_open()) + std::cerr << "[INFO] - " << msg << "\n"; + else + output_stream_ << "[INFO] - " << msg << "\n"; +} + +void LogMe::Logger::warn(const std::string& msg) +{ + if (!output_stream_.is_open()) + std::cerr << "[WARN] - " << msg << "\n"; + else + output_stream_ << "[WARN] - " << msg << "\n"; +} + +void LogMe::Logger::error(const std::string& msg) +{ + if (!output_stream_.is_open()) + std::cerr << "[ERROR] - " << msg << "\n"; + else + output_stream_ << "[ERROR] - " << msg << "\n"; +} + +void LogMe::Logger::critical(const std::string& msg) +{ + if (!output_stream_.is_open()) + std::cerr << "[CRITICAL] - " << msg << "\n"; + else + output_stream_ << "[CRITICAL] - " << msg << "\n"; +}
\ No newline at end of file |
