Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #ifndef OS_LOG_H_
- #define OS_LOG_H_
- #include <ostream>
- #include <sstream>
- namespace Engine {
- namespace OS {
- class Log {
- public:
- enum MessageType {
- MESSAGE_DEBUG,
- MESSAGE_INFO,
- MESSAGE_WARNING,
- MESSAGE_ERROR,
- };
- class Streamer : public std::ostream {
- public:
- Streamer(MessageType messageType);
- ~Streamer();
- private:
- class StringBuffer: public std::stringbuf {
- public:
- StringBuffer(MessageType messageType);
- ~StringBuffer();
- virtual int sync();
- private:
- MessageType mMessageType;
- };
- };
- static void createInstance();
- static Streamer debug;
- static Streamer info;
- static Streamer warning;
- static Streamer error;
- private:
- void writeMessage(const std::string& message, MessageType type);
- void writeDebug(const std::string& message);
- void writeInfo(const std::string& message);
- void writeWarning(const std::string& message);
- void writeError(const std::string& message);
- static Log *instance;
- protected:
- Log();
- };
- }
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement