-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
63 lines (55 loc) · 1.84 KB
/
index.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const HTTPS = require('https');
function timestamp() {
let now = new Date();
let hour = now.getHours();
let minute = now.getMinutes();
let stringHour = hour > 9? hour: `0${hour}`;
let stringMinute = minute > 9? minute: `0${minute}`;
return `[${stringHour}:${stringMinute}]`;
}
function Webhook(url) {
let options = {
hostname: 'discord.com',
port: 443,
path: url.replace("https://discord.com", ""),
method: 'POST',
headers: {
"Content-Type": "application/json"
}
}
return (message) => {
const request = HTTPS.request(options, response => {
response.on("data", responseData => process.stdout.write(responseData))
})
request.on("error", error => process.stdout.write(error))
request.write(JSON.stringify({ content: message }));
request.end();
}
}
/**
* Wrap Console Functions
* @param {string} [appName] Identifer to use in the logs
* @param {string} [webhookURL] The URL for the Webhook
* @return {void} `void`
*/
function DiscordLogger(appName, webhookURL){
let webhook = webhookURL? Webhook(webhookURL): null;
let builtins = {
log: console.log,
warn: console.warn,
error: console.error
}
for (let printFunction in builtins) {
console[printFunction] = function() {
let prefix = timestamp() + (appName? `[${appName}]`: '') + `[${printFunction.toUpperCase()}]`;
builtins[printFunction].apply(console, [prefix, ...arguments]);
if (webhook) {
let message = [...arguments].reduce((accumulator, current) => {
return accumulator + current.toString() + " ";
}, "").trim();
webhook(`\`${prefix} ${message}\``);
}
}
}
}
module.exports = DiscordLogger;