summaryrefslogtreecommitdiffstats
path: root/src/CRSMLogging.hpp
blob: 7f30b3e4837ea5d871f1d2c1a147686b9a30d9d7 (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
35
36
37
38
39
40
41
42
#pragma once

#include <QFile>
#include <QMap>
#include <QString>

#include "ClientInfo.hpp"

class ScenarioSettings;

class CRSMLogging
{
    QString logFolder;
    QString mainLogName;
    QString timestampFormat;
    QFile mainLog;
    QMap<QString, QFile*> logFiles;

    const char* cmdLogsFolder = "cmd/";
    const char* ircLogsFolder = "irc/";
    const char* modLogsFolder = "mod/";
    const char* userLogsFolder = "usr/";
    const char* clonkLogFile = "clonk";
    const char* clonkChatLogFile = "clonk.chat";
    const char* scensLogFile = "scenarios";
public:
    CRSMLogging();

    QString setLogFolder(const QString& folder);
    QString setMainLog(const QString& fileName);
    void setTimestampFormat(const QString& format);
    void log(const QString& message, const QString logFile = "");
    void clonkUserLog(const QString& message, const ClientInfo& client, bool action, bool command = false, bool response = false);
    void modLog(const QString& message, const ClientInfo& client, const QString& modName, bool response);
    void commandLog(const QString& message, const ClientInfo& client, bool response);
    void ircLog(const QString& message, const QString &nick, bool query = false, QString channel = "", bool action = false, bool notice = false, bool response = false);
    void ircUserLog(const QString& message, const ClientInfo &client, bool query, const QString &channel, bool action, bool notice);
    void clonkChatLog(const QString& message);
    void clonkLog(const QString& message);
    void scenLog(const ScenarioSettings& scen);
    QString formatIrcNick(const QString& nick, bool noChannel, const QString& channel, bool action, bool notice);
};