mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-01 20:51:58 -07:00
Protocols: implement protoLog
This commit is contained in:
@@ -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";
|
||||
}
|
Reference in New Issue
Block a user