aboutsummaryrefslogtreecommitdiffstats
path: root/src/Utilities/Logger.hpp
blob: f319d93923cb5f5ce5397a625da1be653cec2605 (plain) (blame)
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
35
36
37
38
#pragma once

#include <string>
#include <iostream>


#include "Utilities.hpp"

using std::string;
using std::cout;
using std::endl;

#define logWarn(x)  Logger::Log(x, Logger::LogLevel::lWARN)
#define logDebug(x) Logger::Log(x, Logger::LogLevel::lDEBUG)
#define logError(x) Logger::Log(x, Logger::LogLevel::lERROR)

#define logStatus(x) Logger::Log(x, Logger::LogLevel::lSTATUS)

#define log(x) logI(x)
#define logI(x) Logger::Log(x, Logger::LogLevel::lINFO)

class Logger {
public:
    enum class LogLevel {
        lSTATUS, // general bot status messages, everything it logs o it's own
        lDEBUG,  // messages logged for development purposes
        lINFO,   // messages logged on certain events (eg. command executed)
        lWARN,
        lERROR
    };

    static void Log(const string& msg, LogLevel logLevel);
    //static void Log(const TelegramMessage& message, LogLevel logLevel);

private:
    static void Print(const string& msg);
};