This repository was archived by the owner on Dec 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.js
40 lines (38 loc) · 1.38 KB
/
logger.js
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
const { WebhookClient } = require("discord.js");
const getTime = () => `[${new Date().toLocaleTimeString()}]`
class Logger {
log = (message) => console.log(getTime(), message);
warn = (message) => console.warn(getTime(), message);
error = (message) => console.error(getTime(), message);
/**
* @param {{ logsWebhookUrl: String, warnsWebhookUrl: String, errorsWebhookUrl: String, }} options
*/
constructor(options) {
if (options?.logsWebhookUrl) {
this.logsWebhook = new WebhookClient({ url: options?.logsWebhookUrl });
this.log = (message) => {
this.logsWebhook.send(`${getTime()} ${message}`);
console.log(getTime(), message);
};
}
if (options?.warnsWebhookUrl) {
this.warnsWebhook = new WebhookClient({ url: options?.warnsWebhookUrl });
this.warn = (message) => {
this.errorsWebhook.send(`${getTime()} ${message}`);
console.warn(getTime(), message);
};
}
if (options?.errorsWebhookUrl) {
this.errorsWebhook = new WebhookClient({ url: options.errorsWebhookUrl });
this.error = (message) => {
this.errorsWebhook.send(`${getTime()} ${message}`);
console.error(getTime(), message);
};
}
}
}
module.exports = new Logger({
logsWebhookUrl: process.env.LOGS_WEBHOOK_URL,
warnsWebhookUrl: process.env.WARNS_WEBHOOK_URL,
errorsWebhookUrl: process.env.ERRORS_WEBHOOK_URL
});