From 6aa9bd0f77dcb5128167fae62e32aa5252fe85c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 2 Dec 2013 00:55:24 +0100 Subject: Renew the updater branch Now with some actual consensus on what the updater will do! --- mmc_updater/src/Log.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mmc_updater/src/Log.h (limited to 'mmc_updater/src/Log.h') diff --git a/mmc_updater/src/Log.h b/mmc_updater/src/Log.h new file mode 100644 index 00000000..cf6be832 --- /dev/null +++ b/mmc_updater/src/Log.h @@ -0,0 +1,46 @@ +#pragma once + +#include +#include + +#include +#include + +class Log +{ + public: + enum Type + { + Info, + Warn, + Error + }; + + Log(); + ~Log(); + + void open(const std::string& path); + + /** Write @p text to the log. This method is thread-safe. */ + void write(Type type, const std::string& text); + /** Write @p text to the log. This method is thread-safe. */ + void write(Type type, const char* text); + + static Log* instance(); + + private: + static void writeToStream(std::ostream& stream, Type type, const char* text); + + std::mutex m_mutex; + std::ofstream m_output; +}; + +inline void Log::write(Type type, const std::string& text) +{ + write(type,text.c_str()); +} + +#define LOG(type,text) \ + Log::instance()->write(Log::type,text) + + -- cgit v1.2.3