Skip to content
API Documentation
BastionGuard™
Logger.hpp
Go to the documentation of this file.
1#pragma once
2#include <mutex>
3#include <string>
4
5namespace bsc::logging {
6
7enum class Level { Debug = 0, Info = 1, Warning = 2, Error = 3 };
8
9class Logger {
10 public:
11 static Logger& instance();
12 void set_level(Level level);
13 void set_utc(bool enabled);
14 void set_microseconds(bool enabled);
15 void set_log_file(const std::string& path);
16 void debug(const std::string& msg);
17 void info(const std::string& msg);
18 void warning(const std::string& msg);
19 void error(const std::string& msg);
20
21 private:
22 void log(Level level, const std::string& msg);
23 std::string timestamp() const;
24 std::string level_name(Level level) const;
25
27 bool utc_{true};
28 bool micro_{false};
29 std::string file_path_;
30 mutable std::mutex mutex_;
31};
32
33} // namespace bsc::logging
void warning(const std::string &msg)
Definition Logger.cpp:22
void set_microseconds(bool enabled)
Definition Logger.cpp:18
std::mutex mutex_
Definition Logger.hpp:30
void info(const std::string &msg)
Definition Logger.cpp:21
void set_log_file(const std::string &path)
Definition Logger.cpp:19
void debug(const std::string &msg)
Definition Logger.cpp:20
void error(const std::string &msg)
Definition Logger.cpp:23
static Logger & instance()
Definition Logger.cpp:11
std::string file_path_
Definition Logger.hpp:29
std::string timestamp() const
Definition Logger.cpp:37
void log(Level level, const std::string &msg)
Definition Logger.cpp:25
void set_utc(bool enabled)
Definition Logger.cpp:17
std::string level_name(Level level) const
Definition Logger.cpp:52
void set_level(Level level)
Definition Logger.cpp:16