osrm-backend/include/util/simple_logger.hpp

56 lines
788 B
C++
Raw Normal View History

2015-01-27 11:44:46 -05:00
#ifndef SIMPLE_LOGGER_HPP
#define SIMPLE_LOGGER_HPP
#include <atomic>
#include <mutex>
#include <sstream>
enum LogLevel
{
logINFO,
logWARNING,
logDEBUG
};
2016-01-05 10:51:13 -05:00
namespace osrm
{
namespace util
{
2015-01-27 11:44:46 -05:00
class LogPolicy
{
public:
void Unmute();
void Mute();
bool IsMute() const;
static LogPolicy &GetInstance();
LogPolicy(const LogPolicy &) = delete;
LogPolicy &operator=(const LogPolicy &) = delete;
2015-01-27 11:44:46 -05:00
private:
LogPolicy() : m_is_mute(true) {}
std::atomic<bool> m_is_mute;
};
class SimpleLogger
{
public:
SimpleLogger();
virtual ~SimpleLogger();
std::mutex &get_mutex();
std::ostringstream &Write(LogLevel l = logINFO) noexcept;
2015-01-27 11:44:46 -05:00
private:
std::ostringstream os;
LogLevel level;
};
2016-01-05 10:51:13 -05:00
}
}
2015-01-27 11:44:46 -05:00
#endif /* SIMPLE_LOGGER_HPP */