3 #include "../config/LConfig.hpp"
4 #include "../core/LogLevel.hpp"
5 #include "../util/TerminalLook.hpp"
27 template <LogLevel LL = LogLevel::Info,
typename... Ts>
35 static void setGlobalLogFileName(std::string filename);
42 static void setGlobalStdLogging(
bool enable);
50 static void setGlobalStdLevelFilter(LogLevel required);
54 using Clock = std::chrono::system_clock;
56 std::string m_logFileName;
58 Clock::time_point m_time;
59 std::ofstream m_logFile;
60 LogLevel m_requiredStdLevel;
62 static std::vector<Logger*> s_instances;
69 m_logFile.open(m_logFileName, std::ios::app | std::ios::ate);
71 std::cerr <<
"Failed to open log file ("
72 << m_logFileName <<
")!" << std::endl;
76 m_logFile << std::endl <<
"---------------------------------------"
78 m_logFile <<
"Opened log file: " << m_logFileName
82 template <
typename T,
typename... Ts>
83 void logStdIO(T head, Ts... tail) {
88 void logStdIO(T msg) {
92 template <
typename T,
typename... Ts>
93 void logFile(T head, Ts... tail) {
102 std::string getTimeString();
108 #include "Logger.tpp"
void setStdLogging(bool enable)
Enable or disable logging via cout and cerr.
Definition: Logger.tpp:57
Definition: Logger.hpp:15
void setLogFileName(std::string filename)
Set the name of the file, which is used for logging.
Definition: Logger.tpp:50
void setStdLevelFilter(LogLevel required)
Don't print log messages, that are below the required log level.
Definition: Logger.tpp:61
void log(Ts...msgs)
Log information.
Definition: Logger.tpp:11