Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LogStream {
- public:
- explicit LogStream(const std::string& path) : out(path, std::ios::binary) {};
- LogStream(const LogStream&) = delete;
- LogStream(LogStream&&) = delete;
- LogStream& operator=(const LogStream&) = delete;
- LogStream& operator=(LogStream&&) = delete;
- ~LogStream() { out.close(); };
- public:
- static std::string GetStringTime() {
- std::chrono::time_point now = std::chrono::system_clock::now();
- std::time_t now_t = std::chrono::system_clock::to_time_t(now);
- std::tm now_tm = *std::localtime(&now_t);
- char buffer[80];
- strftime(buffer, 80, "[%c]", &now_tm);
- return buffer;
- }
- public:
- void Write(const std::string& msg) { std::copy(msg.begin(), msg.end(), std::ostreambuf_iterator(out)); }
- void WriteLine(const std::string& msg) { Write(msg + "\n"); }
- void Log(const std::string& msg) { WriteLine(GetStringTime() + " [Info] : " + msg); }
- void Err(const std::string& msg) { WriteLine(GetStringTime() + " [ERROR] : " + msg); }
- private:
- std::ofstream out;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement