summaryrefslogtreecommitdiff
path: root/src/debug/Log.cpp
blob: 66c430d53fbbd56d76f10548a12b9bbae5b3ba5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "Log.hpp"
#include "../defines.hpp"
#include "../Compositor.hpp"

#include <fstream>
#include <iostream>

void Debug::init(const std::string& IS) {
    logFile = "/tmp/hypr/" + IS + (ISDEBUG ? "/hyprlandd.log" : "/hyprland.log");
}

void Debug::wlrLog(wlr_log_importance level, const char* fmt, va_list args) {
    if (level > wlr_log_get_verbosity())
        return;

    char* outputStr = nullptr;

    vasprintf(&outputStr, fmt, args);

    std::string output = std::string(outputStr);
    free(outputStr);

    rollingLog += output + "\n";

    if (!disableLogs || !**disableLogs) {
        std::ofstream ofs;
        ofs.open(logFile, std::ios::out | std::ios::app);
        ofs << "[wlr] " << output << "\n";
        ofs.close();
    }

    if (!disableStdout)
        std::cout << output << "\n";
}