aboutsummaryrefslogtreecommitdiff
path: root/core/LogManager.ts
blob: 916bc677c911c4d007fa3f3758505ef9ef258cc4 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import chalk from 'chalk';
import * as fs from 'fs';

if (!fs.existsSync("logs")) fs.mkdirSync("logs");

export class LogManager {
    public static logID = new Date().toISOString();

    /**
     * @return void
     * @param message - The message to display
     * @description Shows a warning message
     */
    public static warn(message: string): void {
        let messageParts = message.split(":");
        let messagePrefix = messageParts[0];
        messageParts.shift()

        console.log(
            chalk.gray("[" + new Date().toISOString() + "] ") +
            chalk.yellow("[warn] ") +
            (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix)
        );

        fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [warn] " + message);
    }

    /**
     * @return void
     * @param message - The message to display
     * @description Shows an information message
     */
    public static info(message: string): void {
        let messageParts = message.split(":");
        let messagePrefix = messageParts[0];
        messageParts.shift()

        console.log(
            chalk.gray("[" + new Date().toISOString() + "] ") +
            chalk.cyan("[info] ") +
            (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix)
        );

        fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [info] " + message);
    }

    /**
     * @return void
     * @param message - The message to display
     * @description Shows a debugging message
     */
    public static verbose(message: string): void {
        let messageParts = message.split(":");
        let messagePrefix = messageParts[0];
        messageParts.shift()

        console.log(
            chalk.gray("[" + new Date().toISOString() + "] ") +
            chalk.green("[verb] ") +
            (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix)
        );

        fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [verb] " + message);
    }

    /**
     * @return void
     * @param message - The message to display
     * @description Shows an error message
     */
    public static error(message: string): void {
        let messageParts = message.split(":");
        let messagePrefix = messageParts[0];
        messageParts.shift()

        console.log(
            chalk.gray("[" + new Date().toISOString() + "] ") +
            chalk.red("[crit] ") +
            (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix)
        );

        fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [crit] " + message);
    }
}