Protocols: implement protoLog

This commit is contained in:
Vaxry
2024-04-22 18:44:25 +01:00
parent 741c75d907
commit 012a2802e0
10 changed files with 84 additions and 45 deletions

View File

@@ -32,3 +32,38 @@ void Debug::wlrLog(wlr_log_importance level, const char* fmt, va_list args) {
if (!disableStdout)
std::cout << output << "\n";
}
void Debug::log(LogLevel level, std::string str) {
if (level == TRACE && !trace)
return;
if (shuttingDown)
return;
switch (level) {
case LOG: str = "[LOG] " + str; break;
case WARN: str = "[WARN] " + str; break;
case ERR: str = "[ERR] " + str; break;
case CRIT: str = "[CRITICAL] " + str; break;
case INFO: str = "[INFO] " + str; break;
case TRACE: str = "[TRACE] " + str; break;
default: break;
}
rollingLog += str + "\n";
if (rollingLog.size() > ROLLING_LOG_SIZE)
rollingLog = rollingLog.substr(rollingLog.size() - ROLLING_LOG_SIZE);
if (!disableLogs || !**disableLogs) {
// log to a file
std::ofstream ofs;
ofs.open(logFile, std::ios::out | std::ios::app);
ofs << str << "\n";
ofs.close();
}
// log it to the stdout too.
if (!disableStdout)
std::cout << str << "\n";
}