2015-10-17 03:08:56 +02:00
|
|
|
#pragma once
|
|
|
|
#ifndef MESSMER_CPPUTILS_LOGGING_LOGGING_H
|
|
|
|
#define MESSMER_CPPUTILS_LOGGING_LOGGING_H
|
|
|
|
|
|
|
|
#include "Logger.h"
|
|
|
|
#include <stdexcept>
|
|
|
|
|
|
|
|
namespace cpputils {
|
|
|
|
namespace logging {
|
2015-10-17 15:50:06 +02:00
|
|
|
|
2015-10-17 03:08:56 +02:00
|
|
|
enum Level {
|
|
|
|
ERROR, WARN, INFO, DEBUG
|
|
|
|
};
|
|
|
|
|
|
|
|
inline void setLogger(std::shared_ptr<spdlog::logger> newLogger) {
|
|
|
|
logger().setLogger(newLogger);
|
|
|
|
}
|
|
|
|
|
2015-10-17 15:49:54 +02:00
|
|
|
inline void reset() {
|
|
|
|
logger().reset();
|
|
|
|
}
|
|
|
|
|
|
|
|
inline void setLevel(Level level) {
|
|
|
|
switch(level) {
|
|
|
|
case ERROR: logger().setLevel(spdlog::level::err); return;
|
|
|
|
case WARN: logger().setLevel(spdlog::level::warn); return;
|
|
|
|
case INFO: logger().setLevel(spdlog::level::info); return;
|
|
|
|
case DEBUG: logger().setLevel(spdlog::level::debug); return;
|
|
|
|
}
|
|
|
|
throw std::logic_error("Unknown logger level");
|
|
|
|
}
|
|
|
|
|
2015-10-17 03:08:56 +02:00
|
|
|
inline spdlog::details::line_logger LOG(Level level) {
|
|
|
|
switch(level) {
|
|
|
|
case ERROR: return logger()->error();
|
|
|
|
case WARN: return logger()->warn();
|
|
|
|
case INFO: return logger()->info();
|
|
|
|
case DEBUG: return logger()->debug();
|
|
|
|
}
|
|
|
|
throw std::logic_error("Unknown logger level");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|